Asociando Enums con Strings en C#

Asociando Enums con Strings en C#

En C#, un Enum es un tipo de dato que se utiliza para definir un conjunto de valores constantes. Se utiliza comúnmente en situaciones donde un conjunto fijo de valores debe ser asignado a una variable en particular. A menudo, estas variables Enum deben ser escritas en una base de datos o almacenadas en algún tipo de archivo. Esto puede hacer que sea difícil de leer o entender para alguien que no esté familiarizado con el programa, especialmente si los valores se almacenan como números enteros.

En este artículo, aprenderás cómo asociar Enums con Strings para hacer el código más legible y fácil de entender. Cubriremos cómo hacer esto mediante el uso de atributos personalizados en C#.

📋 Aquí podrás encontrar✍
  1. Asociando Enums con Strings
    1. Creando una clase de atributos personalizados
    2. Crear tu Enum y agregar los atributos personalizados
    3. Obtener el valor de cadena real de un Enum
  2. Conclusión
  3. Preguntas frecuentes
    1. ¿Por qué debería utilizar atributos personalizados en mi Enum?
    2. ¿Existen otros atributos personalizados útiles para Enums en C#?
    3. ¿Puedo asignar valores personalizados a un Enum personalizado?

Asociando Enums con Strings

En C#, puedes asociar Enums con Strings utilizando la propiedad System.ComponentModel.Description. Esta propiedad permite agregar una descripción a Enums personalizados.

Para hacer esto, necesitarás los siguientes pasos:

  1. Crear una clase de atributos personalizados
  2. Crea tu Enum y agrega los atributos personalizados
  3. Obtener el valor de cadena real de un Enum

Creando una clase de atributos personalizados

Lo primero que necesitas hacer es crear una clase personalizada para tus atributos. Esta clase debe heredar de la clase System.Attribute.


class DescripcionEnumAttribute : Attribute
{
    public string Description { get; private set; }

    public DescripcionEnumAttribute(string description)
    {
        Description = description;
    }
}

Este código crea una clase personalizada llamada DescripcionEnumAttribute que tiene una propiedad de solo lectura llamada Description. Este atributo es utilizado para describir el Enum.

Crear tu Enum y agregar los atributos personalizados

Ahora que has creado tu clase personalizada, puedes usarla para asignar descripciones a los valores en tu Enum. A continuación se muestra un ejemplo simple de un Enum que asigna nombres de colores a valores de colores, en lugar de usar números enteros.


public enum ColorEnum
{
    [DescripcionEnum("Rojo")]
    Red,

    [DescripcionEnum("Azul")]
    Blue,

    [DescripcionEnum("Verde")]
    Green,

    [DescripcionEnum("Amarillo")]
    Yellow
}

El código anterior tiene un Enum personalizado llamado ColorEnum. Cada valor Enum está asignado a un atributo personalizado llamado DescripcionEnumAttribute, el cual en este caso le da un nombre de color fácil de leer.

Obtener el valor de cadena real de un Enum

Ahora que tienes tu Enum personalizado, puedes obtener la representación de cadena real del valor Enum utilizando una función personalizada de extensión C#. A continuación se muestra el código para la función:


public static class ExtensionMethods
{
    public static string GetDescripcion(this Enum value)
    {
        var type = value.GetType();
        var name = Enum.GetName(type, value);
        var field = type.GetField(name);
        var attr = field.GetCustomAttribute();
        return attr.Description;
    }
}

Esta función personalizada utiliza reflexión para escanear el Enum personalizado y encontrar el atributo personalizado asociado con el valor Enum. Si se encuentra, se devuelve la descripción como una cadena de texto.

Conclusión

Asociar Enums con Strings en C# puede hacer el código más legible y fácil de entender para otros desarrolladores, especialmente cuando se almacenan los valores en una base de datos o archivo. El uso de atributos personalizados es una manera sencilla de llevar a cabo esta tarea. Asegúrate de seguir los siguientes pasos: crear una clase de atributos personalizados, agregar los atributos personalizados a tus Enums y utilizar la función personalizada de extensión para obtener el valor de cadena real de un Enum.

Preguntas frecuentes

¿Por qué debería utilizar atributos personalizados en mi Enum?

Los atributos personalizados son una forma sencilla y eficaz de asociar una descripción más legible con los valores de un Enum, lo cual facilita la comprensión del código para otros desarrolladores. Además, puedes utilizar los atributos personalizados para otros fines, como la validación de datos.

¿Existen otros atributos personalizados útiles para Enums en C#?

Sí, existen otros atributos personalizados útiles para Enums en C#. Algunos ejemplos incluyen la capacidad de asociar colores o imágenes con valores Enums para su uso en interfaces de usuario, e incluso la validación de datos en tiempo de ejecución.

¿Puedo asignar valores personalizados a un Enum personalizado?

Sí, en C# puedes asignar valores personalizados a un Enum personalizado utilizando una sintaxis como la siguiente:


public enum Numeros
{
    Uno = 1,
    Dos = 2,
    Tres = 3
}

En este ejemplo, cada valor en el Enum personalizado se asigna manualmente a un número entero específico.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir