English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En C#, el tipo enum (tipo enumerado) se utiliza para asignar nombres de constantes a un grupo de valores enteros numéricos. Esto hace que los valores de las constantes sean más legibles, por ejemplo, WeekDays.Monday es más legible al referirse a un día de la semana que el número 0.
La enumeración se define directamente utilizando la palabra clave enum en el espacio de nombres, clase o estructura. Todos los nombres de constantes se pueden declarar dentro de los corchetes y separar por comas. A continuación, se define la enumeración de días laborables.
enum WeekDays { Lunes, Martes, Miércoles, jueves, viernes, sábado, domingo }
Arriba, la enumeración WeekDays se declara en cada línea, separada por comas.
Si no se asigna un valor a un miembro de enumeración, el compilador asignará valores enteros por defecto (comenzando en cero) a cada miembro. El primer miembro de la enumeración será 0, y el valor de cada miembro de enumeración consecutivo aumentará1.
enum WeekDays { Lunes, // 0 Martes, // 1 Miércoles, // 2 jueves, // 3 viernes, // 4 sábado, // 5 domingo // 6 }
Se pueden asignar diferentes valores a miembros de enumeración. El cambio de valores por defecto de los miembros de enumeración se asignarán automáticamente a otros miembros en orden ascendente.
enum Categories { Electronics, // 0 Food, // 1 Automotive = 6, // 6 Arts, // 7 BeautyCare, // 8 Fashion // 9 }
Incluso se puede asignar diferentes valores a cada miembro.
enum Categories { Electronics = 1, Food = 5, Automotive = 6, Arts = 10, BeautyCare = 11, Fashion = 15, WomanFashion = 15 }
La enumeración puede ser cualquier tipo de datos numéricos, como byte, sbyte, short, ushort, int, uint, long o ulong. Sin embargo, la enumeración no puede ser de tipo cadena.
Después del nombre del enum, especificar el tipo como :type. A continuación, se define el enum de bytes.
enum Categories: byte { Electronics = 1, Food = 5, Automotive = 6, Arts = 10, BeautyCare = 11, Fashion = 15 }
Se puede usar la sintaxis de punto: enum.member para acceder a la enumeración
enum WeekDays { Lunes, Martes, Miércoles, jueves, viernes, sábado, domingo } Console.WriteLine(WeekDays.Monday); // Lunes Console.WriteLine(WeekDays.Tuesday); // Martes Console.WriteLine(WeekDays.Wednesday); // Miércoles Console.WriteLine(WeekDays.Thursday); // Jueves Console.WriteLine(WeekDays.Friday); // Viernes Console.WriteLine(WeekDays.Saturday); // Sábado Console.WriteLine(WeekDays.Sunday); // Domingo
La conversión de un tipo de enumeración a su tipo de entero base requiere una conversión explícita.
enum WeekDays { Lunes, Martes, Miércoles, jueves, viernes, sábado, domingo } Console.WriteLine(WeekDays.Friday); //Salida: viernes int day = (int) WeekDays.Friday; // Conversión de enum a int Console.WriteLine(day); //Salida:4 var wd = (WeekDays); 5; // Conversión de int a enum Console.WriteLine(wd);//Salida: sábado
enum es una clase abstracta.