Condividi tramite


Enumerazioni (Visual C# Express)

Aggiornamento: novembre 2007

C# consente di creare il proprio set di costanti denominate utilizzando la parola chiave enum. Questi tipi di dati consentono di dichiarare un set di nomi o di altri valori letterali che definiscono tutti i valori possibili assegnabili a una variabile.

Ad esempio, se il programma gestisce i giorni della settimana, può essere utile creare un nuovo tipo denominato DayOfWeek. È possibile quindi dichiarare una nuova variabile del tipo DayOfWeek e assegnarle un valore. L'utilizzo di questo tipo di dati semplifica la lettura del codice e impedisce inoltre l'assegnazione di un valore non valido o imprevisto alla variabile.

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
    }
}

Tecniche di enumerazione più avanzate

Di seguito vengono presentate altre utili funzionalità dei tipi di dati enum.

Visualizzazione dei valori letterali dell'enumerazione

Per accedere al nome o alle parole utilizzate nel tipo di dati enum, è possibile utilizzare il metodo ToString(), come illustrato di seguito:

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

Impostazione dei valori predefiniti

Per impostazione predefinita, il primo valore nel tipo enumerato è uno zero. È possibile specificare un altro valore iniziale, come illustrato di seguito:

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

In realtà, è possibile definire valori integer univoci per tutti i valori:

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

Vedere anche

Concetti

Nozioni di base del linguaggio C#

Tipi di dati incorporati (Visual C# Express)

Tipi di valore e di riferimento (Visual C# Express)

Riferimenti

Costanti (Guida per programmatori C#)