C# Enum(Enumeración) con ejemplo
⚡ Resumen inteligente
En C#, las enumeraciones definen un conjunto con nombre de valores enteros constantes, como los días de la semana, lo que facilita la lectura y el mantenimiento del código. La palabra clave `enum` declara estas constantes fijas una sola vez para su reutilización en todo el programa.
Enumeración C#
Una enumeración se utiliza en cualquier lenguaje de programación para definir un conjunto constante de valores. Por ejemplo, los días de la semana se pueden definir como una enumeración y usarse en cualquier parte del programa. En C#, la enumeración se define con la ayuda de la palabra clave "enum".
Veamos un ejemplo de cómo podemos utilizar la palabra clave 'enum'.
En nuestro ejemplo, definiremos una enumeración llamada días, que se utilizará para almacenar los días de la semana. Para cada ejemplo, modificaremos solo la función principal en nuestro archivo Program.cs.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { enum Days{Sun,Mon,tue,Wed,thu,Fri,Sat}; static void Main(string[] args) { Console.Write(Days.Sun); Console.ReadKey(); } } }
Code Explicación:-
- La 'enumeración' tipo de datos se especifica para declarar una enumeración. El nombre de la enumeración es Días. Todos los días de la semana se especifican como valores de la enumeración.
- Finalmente, la función console.write se utiliza para mostrar uno de los valores de la enumeración.
Si el código anterior se ingresa correctamente y el programa se ejecuta con éxito, se mostrará el siguiente resultado.
Salida:
En el resultado, puede ver que el valor 'Sol' de la enumeración se muestra en la consola.
¿Por qué usar enumeraciones en C#?
Las enumeraciones hacen que un programa sea más fácil de leer, más seguro y más sencillo de mantener. En lugar de dispersar números sin explicación, a veces llamados números mágicos, por todo el código, una enumeración asigna a cada valor un nombre descriptivo que indica su propósito.
- Legibilidad: Un nombre como Days.Fri es mucho más claro que el número 5, por lo que cualquiera que lea el código entenderá el significado de inmediato.
- Seguridad de tipos: Una variable declarada con un tipo enumerado solo puede contener uno de los miembros definidos, lo que evita que se introduzcan valores no válidos.ping en.
- Mantenibilidad: Las constantes relacionadas residen en un único lugar, por lo que añadir o renombrar un valor actualiza todo el programa de forma coherente.
- El enlace de datos: Los frameworks como WPF y ASP.NET pueden vincular una enumeración a una lista desplegable, lo que hace que las enumeraciones sean útiles para crear interfaces de usuario.
Dado que el compilador comprueba cada asignación con respecto a los miembros permitidos, las enumeraciones también ayudan a detectar errores tempranamente, antes de que se ejecute el programa.
Asignación de valores personalizados a una enumeración de C#
Por defecto, C# asigna el valor 0 al primer miembro de la enumeración y aumenta en uno cada miembro siguiente. En la enumeración Days anterior, Sun es igual a 0, Mon es igual a 1 y Sat es igual a 6. Puedes anular estos valores predeterminados asignando números explícitos.
- Valores explícitos: Escribir la enumeración Level {Low = 1, Medium = 5, High = 10} asigna a cada miembro un número elegido en lugar de la secuencia predeterminada.
- Asignación parcial: Si asigna un valor solo a algunos miembros, el compilador continúa numerando los miembros siguientes a partir del último valor asignado.
- Tipo subyacente: Por defecto, una enumeración almacena sus miembros como enteros (int), pero se puede basar en bytes, short o long para ahorrar memoria o ampliar el rango.
Los valores personalizados resultan útiles cuando los números deben coincidir con un sistema externo, como códigos de bases de datos o constantes de protocolo, de modo que la enumeración refleje con exactitud los datos reales.
Cómo convertir enumeraciones de C# a enteros, cadenas y banderas
En C#, es frecuente necesitar convertir un valor de enumeración a otro formato, como almacenarlo como un número o leerlo desde un archivo de texto. Estas conversiones se realizan de varias maneras estándar.
- Enumeración a entero: Una conversión explícita como (int)Days.Wed devuelve el entero subyacente, lo cual es útil para almacenamiento o aritmética.
- entero a enumeración: Al realizar una conversión en la dirección opuesta, por ejemplo (Days)3, un número se convierte de nuevo en el miembro de enumeración correspondiente.
- Cadena a enumeración: Enum.Parse y el método más seguro Enum.TryParse convierten un nombre como "Fri" en el miembro Days.Fri sin generar un error por texto no válido.
- Enumeración a cadena: Llamar a ToString en cualquier miembro devuelve su nombre, por lo que Days.Sun.ToString() produce "Sun" para mostrarlo o registrarlo.
- Listado de miembros: Las funciones Enum.GetValues y Enum.GetNames devuelven todos los valores o nombres, lo que resulta útil al rellenar menús o validar la entrada de datos.
Cuando una enumeración deba representar una combinación de opciones en lugar de una sola, aplique el atributo Flags y asigne a cada miembro una potencia de dos, como 1, 2, 4 y 8. A continuación, puede combinar los miembros con el operador OR bit a bit y comprobar si se trata de una opción específica con el método HasFlag.
Estas técnicas de conversión permiten que una enumeración se mueva limpiamente entre nombres legibles, números almacenados y conjuntos de indicadores combinados, manteniendoping El resto del programa es seguro en cuanto a tipos y fácil de seguir.



