MEJOR SITIO PARA DESARROLLADORES WEB
Lenguaje C#. W3Schools lecciones en español

Ua En De

C# Enum


C# Enumeraciones

Una enum es una "clase" especial que representa un grupo de constantes (variables inmutables/de solo lectura).

Para crear una enum, utilice la palabra clave enum (en lugar de clase o interfaz) y separé los elementos de enumeración con una coma:

Ejemplo

enum Level
{
  Low,
  Medium,
  High
}

Puede acceder a elementos enum con la sintaxis punto:

Level myVar = Level.Medium;
Console.WriteLine(myVar);
Inténtalo tú mismo »

Enum es la abreviatura de "enumeración", que significa "específicamente enumerados".


Enum dentro de una clase

También puedes tener un enum dentro de una clase:

Ejemplo

class Program
{
  enum Level
  {
    Low,
    Medium,
    High
  }
  static void Main(string[] args)
  {
    Level myVar = Level.Medium;
    Console.WriteLine(myVar);
  }
}

La salida será:

Medium
Inténtalo tú mismo »

Valores de enumeración

De forma predeterminada, el primer elemento de una enumeración tiene el valor 0. El segundo tiene el valor 1, y así sucesivamente.

Para obtener el valor entero de un elemento, debe convertir explícitamente el elemento a un int:

Ejemplo

enum Months
{
  January,    // 0
  February,   // 1
  March,      // 2
  April,      // 3
  May,        // 4
  June,       // 5
  July        // 6
}

static void Main(string[] args)
{
  int myNum = (int) Months.April;
  Console.WriteLine(myNum);
}

La salida será:

3
Inténtalo tú mismo »

También puede asignar sus propios valores de enumeración y los siguientes elementos actualizarán sus números en consecuencia:

Ejemplo

enum Months
{
  January,    // 0
  February,   // 1
  March=6,    // 6
  April,      // 7
  May,        // 8
  June,       // 9
  July        // 10
}

static void Main(string[] args)
{
  int myNum = (int) Months.April;
  Console.WriteLine(myNum);
}

La salida será:

7
Inténtalo tú mismo »

Enum en una declaración de cambio

Las enumeraciones se utilizan a menudo en sentencias switch para comprobar los valores correspondientes:

Ejemplo

enum Level
{
  Low,
  Medium,
  High
}

static void Main(string[] args)
{
  Level myVar = Level.Medium;
  switch(myVar)
  {
    case Level.Low:
      Console.WriteLine("Low level");
      break;
    case Level.Medium:
       Console.WriteLine("Medium level");
      break;
    case Level.High:
      Console.WriteLine("High level");
      break;
  }
}

La salida será:

Medium level
Inténtalo tú mismo »

¿Por qué y cuándo utilizar enumeraciones?

Utilice enumeraciones cuando tenga valores que sepa que no van a cambiar, como los días del mes, los días, los colores, la baraja de cartas, etc.