DEV Community

loading...
Cover image for Enum, enumeraciones en C Sharp (C#)

Enum, enumeraciones en C Sharp (C#)

veronicaguamann profile image Verónica Guamán ・3 min read

Al desarrollar una aplicación nos encontramos con datos que pueden tener valores específicos es decir no van a cambiar con el tiempo, estos pueden ser el género, estado civil, los roles de usuario, opciones a ser ingresados en un menú, etc. Para estos casos existen los Enums.

En C Sharp (C#) los Enums, "son un tipo de valor definido por un conjunto de constantes, con nombre del tipo numérico integral subyacente". es decir nosotros podemos asignar valores fijos(constantes) que serán utilizados en la aplicación y estos se representan en el sistema como un numero entero,

Por ejemplo si yo quiero definir estados civiles tenemos valores específicos para esto, como: soltero, casado, divorciado, viudo ..
Estos datos no van a cambiar es decir son constantes,y podemos hacer uso del Enum para poder utilizarlas.

Sintaxis
enum NombreDeEnumeracion { valor1, valor2,..}
donde Enum es la palabra reservada, seguida del nombre del conjunto de valores, y dentro de las llaves colocamos los valores fijos o constantes, como se muestra a continuación.

enum EstadoCivil
    {
        Soltero,
        Casado,
        Divorciado,
        Viudo
    }
Enter fullscreen mode Exit fullscreen mode

en C#, podemos asignarle un valor numérico a la constante, de lo contrario el lenguaje asigna un valor numérico incremental iniciando en 0.

enum EstadoCivil
    {
        Soltero = 1,
        Casado = 2,
        Divorciado = 3,
        Viudo=4
    }
Enter fullscreen mode Exit fullscreen mode

Si necesitamos podemos asignarle valores que no necesariamente siguen un orden

enum EstadoCivil
    {
        Soltero = 1,
        Casado = 5,
        Divorciado = 8,
        Viudo=11
    }
Enter fullscreen mode Exit fullscreen mode

Como comente anteriormente, si no le asignamos un valor, C# le asigna un valor iniciando en 0,1,2 etc, existe otro caso en el que le podemos asignar un número a un solo valor, y C# le asigna a los siguientes valores un número incremental después de número asignado. por ejemplo

enum EstadoCivil
    {
        Soltero ,
        Casado = 5,
        Divorciado,
        Viudo
    }
Enter fullscreen mode Exit fullscreen mode

En este caso a "Soltero" se le asignará el número 0, a casado le hemos asignado el número 5, por consiguiente Divorciado tendrá el número 6, Viudo el número 7 y así sucesivamente.

Para llamar esta función en otra clase podemos realizarlo de la siguiente manera

class Program
    {        
        static void Main(string[] args)
        {
            int idEstadoCivil = (int)EstadoCivil.Soltero;
            var estadoCivil = EstadoCivil.Soltero;
            Console.WriteLine($"El estado civil Soltero tiene el codigo: {idEstadoCivil}");
            Console.WriteLine($"Mi estado civil actualmente es : {estadoCivil}");
        }
    }   
Enter fullscreen mode Exit fullscreen mode

El resultado es el siguiente:
Alt Text

podemos observar que hemos impreso por pantalla, la palabra o el valor constante y el código o numero fijo que tiene dicha constante.

Enum hace que el código sea más claro y legible. por ejemplo si nosotros queremos hacer una validación

if(estadoCivil == 1)//uno significa Soltero
{
//código
}
Enter fullscreen mode Exit fullscreen mode

Si tenemos más clases en las que realicemos lo mismo podemos confundirnos, después de un tiempo no sabremos que significa ese "1" a pesar del comentario, por el contrario si usamos Enum podemos observarlo de la siguiente manera

if(estadoCivil = EstadoCivil.Soltero)
{
//Código
}
Enter fullscreen mode Exit fullscreen mode

De esta forma el código es más comprensible.

El Enum se puede colocar en la misma clase, pero es recomendable crearlo en una clase diferente y podemos llamarla en la clase principal

Conclusión

Utilizar Enum hará que tu código sea más entendible, si tienes datos que van a tener los mismos valores siempre es decir que sean constantes, con esto nos evitamos tener que usar solo números que en el futuro no vamos a entender de que significa.

Como siempre te dejo una infografía de resumen
Alt Text

Nos vemos en Twitter e Instagram ;)

Discussion (0)

pic
Editor guide