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
}
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
}
Si necesitamos podemos asignarle valores que no necesariamente siguen un orden
enum EstadoCivil
{
Soltero = 1,
Casado = 5,
Divorciado = 8,
Viudo=11
}
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
}
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}");
}
}
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
}
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
}
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.
Top comments (0)