Enumeradores enum de C#
Los enumeradores enum de C# son un conjunto de constantes listadas con nombre y valor, declaradas fuera de los métodos de la clase.
Declaración de enumeradores enum
Los numeradores se pueden declarar de dos maneras distintas, dependiendo de los valores de cada constante.
Podría interesarte Declaración de variables en C#
Enum sin inicializar
La forma básica de un enumerador es únicamente declarar el nombre de las constantes sin definir el valor.
enum Dias
{
Domingo,
Lunes,
Martes
}
- Se declara la palabra reservada enum seguido del nombre del enumerador.
- Entre llaves se colocan el nombre de las constantes, se utiliza la coma al tener más de un elemento.
Al crear constantes sin valores iniciales personalizados, enum por defecto inicializa al primero con 0, segundo con 1, etc. Por lo tanto, domingo tendrá el valor de 0, lunes de 1 y el martes de 2.
Enum inicializados
La segunda forma de declarar los enumeradores es agregar a cada constante un valor inicial, para invalidar el valor por defecto.
enum Meses
{
Enero = 1,
Febrero = 2,
Marzo = 3
}
- La única diferencia respecto al primero es la colocación de un valor a cada constante.
- Al agregar valores personalizados no es necesario colocar en algún orden las constantes.
Utilizar los enumeradores
Los enumeradores se pueden utilizar en la clase donde fueron declaradas o desde otra clase, teniendo en cuenta las referencias entre proyectos.
Para utilizar los enumeradores solo es necesario instanciar el nombre del enum seguido de la constante.
Console.WriteLine(Dias.Lunes);
Al colocarlo de esta manera obtendremos como resultado la palabra lunes, para obtener el valor de lunes hay que hacer un cast.
Console.WriteLine((int)Dias.Lunes);
De esta forma el resultado obtenido es un 1, esto de acuerdo con el enumerador declarado anteriormente.
Los valores de las constantes son numéricos, por lo tanto, pueden aplicarse el cast byte, int, etc.
Podría interesarte Referencias entre proyectos modelo de capas
Es recomendable utilizar los numeradores para establecer constantes que se utilicen en toda la clase y evitar hardcode.
Además de agilizar el mantenimiento de la aplicación cuando el código fuente es muy grande.