I lettori come te aiutano a sostenere MUO. Quando effettui un acquisto utilizzando i link sul nostro sito, potremmo guadagnare una commissione di affiliazione. Per saperne di più.

Le enum sono un tipo di dati utile che consente di definire un elenco di opzioni denominate per una variabile. Ad esempio, se si desidera archiviare ogni giorno della settimana, è possibile utilizzare un'enumerazione per rappresentare i valori validi.

Le enum rendono il tuo codice più facile da leggere e scrivere incoraggiando nomi significativi e limitando i valori che puoi usare. Spesso è conveniente usare un'istruzione switch per gestire i possibili valori di un enum.

Puoi dichiarare e usare le enumerazioni in molti linguaggi di programmazione, incluso C#.

Come dichiarare un enum in C#

In C#, in genere si deselezionano le enumerazioni a livello di spazio dei nomi. Ad esempio, in un'applicazione console C# è possibile dichiarare gli enum come proprietà di classe. Puoi vedere un esempio in questo Repository GitHub.

instagram viewer
classeProgramma
{
enum giorno della settimana {
Lunedi,
Martedì,
Mercoledì,
Giovedì,
Venerdì,
Sabato,
Domenica
}

staticovuotoPrincipale(corda[] argomentazioni)
{

}
}

Quando dichiari un enum, ogni opzione ottiene un valore intero per rappresentare il suo indice. Per impostazione predefinita, il primo valore nell'enumerazione ha un valore di indice pari a 0. Per cambiare questo, puoi specificare il tuo indice per il primo elemento quando dichiari l'enumerazione:

enum giorno della settimana { 
lunedì = 1,
Martedì,
Mercoledì,
Giovedì,
Venerdì,
Sabato,
Domenica
}

In questo caso, l'indice del primo elemento Lunedi inizia a 1. L'indice dell'elemento successivo Martedì sarà 2, e così via.

Come accedere a un valore Enum in C#

Esistono molti modi diversi per accedere ai valori memorizzati all'interno degli enum. Il valore restituito per ogni opzione nell'enumerazione è l'indice. Per questo esempio, il valore di Giorno feriale. Venerdì È 5.

Un modo per recuperare il nome dell'enumerazione consiste nell'usare il file Enum. OttieniNome() funzione. Questo ottiene il nome dell'opzione all'indice 5:

corda venerdì = Enum. OttieniNome(tipo di(giorno della settimana), giorno della settimana. Venerdì);
Consolle. Linea di scrittura("Grazie a Dio è" + venerdì + "!");
// Output = Grazie a Dio è venerdì!

Puoi anche accedere a un valore usando il suo indice. In questo caso, il valore all'indice 2 nell'enumerazione Weekday (che è martedì) verrà memorizzato nella variabile:

Giorno della settimana martedì = (Giorno della settimana)2;
Consolle. Linea di scrittura("Oggi è " + martedì);
// Output = Oggi è martedì

Quando passi un enum come argomento in Consolle. Linea di scrittura(), IL accordare() Il metodo per l'enumerazione viene eseguito automaticamente. Ciò significa che invece di stampare il vero valore numerico dell'enumerazione, che è 5, stamperà il valore della stringa, Venerdì.

Consolle. WriteLine (giorno feriale. giovedì + "è il nuovo" + Giorno feriale. Venerdì);
// Output = giovedì è il nuovo venerdì

Puoi anche convertire o analizzare il tipo di dati in un numero intero come un altro modo per memorizzare l'indice di un'opzione:

int lunedìIndice = (int) Giorno feriale. Lunedi;
Consolle. WriteLine (lunedìIndex);
// Uscita = 1

Come confrontare le enumerazioni in C#

In C# è possibile confrontare le enumerazioni usando gli operatori di confronto (==, !=, , <=, >=). Questo confronterà il valore numerico delle opzioni.

Giorno della settimana day1 = Giorno della settimana. Lunedi;
Giorno della settimana day2 = Giorno della settimana. Martedì;

Se (giorno1 == giorno2)
{
Consolle. Linea di scrittura("I giorni sono gli stessi.");
}
altro
{
Consolle. Linea di scrittura("I giorni sono diversi.");
}

In questo esempio, il valore di Weekday. Monday è 1 e il valore di Weekday. Martedì è 2, quindi il 1 == 2 il confronto fallirà.

Un altro modo per confrontare le enum è il Equivale() metodo:

Se (day1.Equals (day2))
{
Consolle. Linea di scrittura("I giorni sono gli stessi.");
}
altro
{
Consolle. Linea di scrittura("I giorni sono diversi.");
}

Puoi anche utilizzare un'istruzione switch C# per confrontare un valore con ogni opzione in un'enumerazione. In questo esempio, il codice rientrerà nel caso Wednesday:

Giorno della settimana valueToCompare = Giorno della settimana. Mercoledì;

interruttore (valore da confrontare)
{
caso Giorno feriale. Lunedi:
Consolle. Linea di scrittura("Ho bisogno di caffè.");
rottura;
caso Giorno feriale. Martedì:
Consolle. Linea di scrittura("Ho bisogno di caffè.");
rottura;
caso Giorno feriale. Mercoledì:
Consolle. Linea di scrittura("Ho bisogno di caffè.");
rottura;
caso Giorno feriale. Giovedì:
Consolle. Linea di scrittura("Giovedì è il nuovo venerdì!");
rottura;
caso Giorno feriale. Venerdì:
Consolle. Linea di scrittura("Grazie a Dio è venerdì!");
rottura;
caso Giorno feriale. Sabato:
Consolle. Linea di scrittura("Il mio giorno preferito!");
rottura;
caso Giorno feriale. Domenica:
Consolle. Linea di scrittura("Il mio altro giorno preferito!");
rottura;
predefinito:
Consolle. Linea di scrittura("Giorno della settimana non valido.");
rottura;
}

Come eseguire iterazioni su enum in C#

Puoi scorrere le enumerazioni in C# usando il Enum. OttieniValori() metodo, che restituisce un array di tutti i valori nell'enumerazione. Questo frammento di codice viene stampato ogni giorno della settimana, inclusi lunedì, martedì e così via:

per ciascuno (Giorno feriale In Enum. Ottieni valori(tipo di(Giorno feriale)))
{
Consolle. Linea di scrittura((int)giorno); // Per stampare l'indice
Consolle. WriteLine (giorno); // Per stampare il valore del testo
}

Puoi anche scorrere i valori enum usando il Enum. OttieniNomi() metodo. Restituisce un elenco di valori stringa per rappresentare i nomi per le opzioni enum:

per ciascuno (corda nome In Enum. Ottieni nomi(tipo di(Giorno feriale)))
{
int indice = (int)(Giorno della settimana) Enum. Analizza(tipo di(giorno della settimana), nome);

Consolle. WriteLine (indice); // Per stampare l'indice
Consolle. WriteLine (nome); // Per stampare il valore del testo
}

Usare Enum in C#

Puoi usare gli enum nel tuo codice per renderlo più leggibile e meno soggetto a bug. Gli enum possono anche essere molto utili se abbinati ad altre strutture, come i dizionari.