Cargando...

Uso de constantes y enumeraciones en C#

Aprende a usar constantes y enumeraciones en C# para escribir código más limpio, seguro y fácil de mantener con ejemplos prácticos.

En programación, hay ciertos valores que nunca cambian durante toda la aplicación. En estos casos, se utilizan constantes (const) o estructuras enum. Las constantes se usan para fijar un valor, mientras que los enums sirven para definir conjuntos significativos de constantes. De esta manera, el código se vuelve más legible, más confiable y más fácil de mantener.


Constantes (const)

Las variables definidas con la palabra clave const no pueden cambiar durante la ejecución del programa.


const double Pi = 3.14159;
const int MaxUser = 100;

Console.WriteLine("Valor de Pi: " + Pi);
Console.WriteLine("Usuarios máximos: " + MaxUser);

Aquí, Pi y MaxUser son valores constantes. No pueden modificarse en ninguna parte del programa.


Constantes Readonly

Las variables definidas con readonly solo pueden recibir un valor en el lugar donde se declaran o dentro de un constructor. No pueden modificarse posteriormente.


class Configuracion
{
    public readonly string Version = "1.0.0";

    public Configuracion(string version)
    {
        Version = version; // se puede asignar dentro del constructor
    }
}

Los valores definidos con readonly pueden determinarse en tiempo de ejecución, lo que los diferencia de const.


Definición de un Enum

Un enum (enumeración) es un tipo de dato especial que contiene un grupo de valores constantes relacionados. Por defecto, los enums contienen valores de tipo int.


enum Dias
{
    Lunes,
    Martes,
    Miercoles,
    Jueves,
    Viernes,
    Sabado,
    Domingo
}

class Program
{
    static void Main()
    {
        Dias hoy = Dias.Miercoles;
        Console.WriteLine("Hoy: " + hoy);
        Console.WriteLine("Valor numérico del día: " + (int)hoy);
    }
}

En este ejemplo, se creó un enum llamado Dias y se seleccionó el valor Miercoles.


Valores de Enum y uso con Switch

Los valores de los enums se usan frecuentemente junto con la instrucción switch.


Dias hoy = Dias.Viernes;

switch (hoy)
{
    case Dias.Lunes:
        Console.WriteLine("Inicio de semana.");
        break;
    case Dias.Viernes:
        Console.WriteLine("¡Casi es fin de semana!");
        break;
    case Dias.Domingo:
        Console.WriteLine("Día de descanso.");
        break;
    default:
        Console.WriteLine("Día normal.");
        break;
}

Asignar valores personalizados a un Enum

Por defecto, los valores de un enum comienzan en 0, pero se les pueden asignar números personalizados.


enum CodigosError
{
    Exito = 0,
    Advertencia = 100,
    Error = 200,
    Critico = 500
}

class Program
{
    static void Main()
    {
        CodigosError codigo = CodigosError.Error;
        Console.WriteLine($"Código de error: {(int)codigo} - {codigo}");
    }
}

De esta forma, los enums hacen que las constantes como códigos de error o códigos de estado sean más significativas.


TL;DR

  • const: Valor constante en tiempo de compilación, no se puede cambiar.
  • readonly: Solo puede asignarse en la declaración o dentro del constructor.
  • enum: Tipo especial que agrupa valores constantes significativos.
  • Los valores de enum pueden usarse fácilmente con la instrucción switch.