Enumeraciones (Visual C# Express)

Actualización: noviembre 2007

C# permite crear un conjunto propio de constantes con nombre utilizando la palabra clave enum. Estos tipos de datos permiten declarar un conjunto de nombres u otros valores literales que definen todos los valores posibles que se pueden asignar a una variable.

Por ejemplo, si el programa utiliza los días de la semana, es posible crear un nuevo tipo llamado DayOfWeek. Se puede declarar una nueva variable del tipo DayOfWeek y asignarle un valor. La utilización de este tipo de datos permite que el código sea más legible y hace menos probable que se asigne a la variable un valor no válido o inesperado.

public enum DayOfWeek
{
    Sunday = 0,
    Monday = 1, 
    Tuesday = 2, 
    Wednesday = 3, 
    Thursday = 4, 
    Friday = 5, 
    Saturday = 6
}

class Program
{
    static void Main()
    {
        DayOfWeek day = DayOfWeek.Monday;
        int i = (int) DayOfWeek.Monday;

        System.Console.WriteLine(day);  // displays Monday
        System.Console.WriteLine(i);    // displays 1
    }
}

Técnicas de enumeración más avanzadas

A continuación, se muestran varias características de tipos de datos enum que pueden ser útiles.

Mostrar valores literales de enumeración

Si necesita tener acceso al nombre o las palabras que se está utilizando en el tipo de datos enum, puede hacerlo mediante el método ToString(), de la siguiente manera:

DayOfWeek day = DayOfWeek.Wednesday;
System.Console.WriteLine(day.ToString());  // displays Wednesday

Establecer valores predeterminados

De manera predeterminada, el primer valor en el tipo enumerado es un cero. Se puede especificar un valor inicial diferente, de la siguiente forma:

enum Color { Red = 1, Yellow = 2, Blue = 3 };

De hecho, se pueden definir valores enteros únicos para todos los valores:

enum Medal { Gold = 30, Silver = 20, Bronze = 10 };

Vea también

Conceptos

Manual del lenguaje C#

Tipos de datos integrados (Visual C# Express)

Tipos de referencia y de valor (Visual C# Express)

Referencia

Constantes (Guía de programación de C#)