Enumeratori in C#

Gli enumeratori, conosciuti anche come enumerazioni o enum, sono una funzionalità molto utile in C#. Permettono di definire un gruppo di costanti con nomi significativi che rendono il codice più leggibile e comprensibile, specialmente quando si lavora con insiemi di valori limitati e predefiniti.

Sintassi

La sintassi per dichiarare un enum è semplice. Si utilizza la parola chiave enum seguita dal nome dell’enumerazione e dall’elenco dei valori che essa può assumere. Ecco un esempio:

enum GiorniDellaSettimana
{
    Lunedì,
    Martedì,
    Mercoledì,
    Giovedì,
    Venerdì,
    Sabato,
    Domenica
}

In questo esempio, GiorniDellaSettimana è un enum che rappresenta i giorni della settimana. Ogni valore all’interno dell’enum ha un corrispondente valore intero che parte da 0 per Lunedì e prosegue per gli altri giorni.

Assegnazione di valori alle costanti

Di default, i valori assegnati agli elementi dell’enum partono da 0, ma puoi assegnare valori personalizzati. Questo può essere utile quando desideri che le costanti abbiano un significato numerico specifico.

enum LivelliDiAccesso
{
    Utente = 1,
    Moderatore = 2,
    Amministratore = 3
}

In questo esempio, abbiamo definito un enum chiamato LivelliDiAccesso, in cui Utente ha il valore 1, Moderatore ha il valore 2 e Amministratore ha il valore 3.

Utilizzo delle enum

Gli enum possono essere utilizzati per migliorare la leggibilità del codice, rendendo più chiaro quali valori rappresentano determinate condizioni o stati. Ecco un esempio di come utilizzare un enum in un’istruzione if:

LivelliDiAccesso livello = LivelliDiAccesso.Amministratore;
if (livello == LivelliDiAccesso.Amministratore)
{
    Console.WriteLine("Accesso amministratore garantito.");
}

In questo esempio, se il livello di accesso dell’utente è impostato su Amministratore, verrà stampato un messaggio di conferma.

Confronto tra valori numerici

Essendo ogni elemento dell’enumeratore associato a un valore numerico, è possibile confrontare un enum direttamente con i numeri interi. Tuttavia, questo è generalmente sconsigliato poiché riduce la leggibilità del codice. Ecco un esempio:

LivelliDiAccesso livello = LivelliDiAccesso.Moderatore;
int livelloConvertito = (int)livello;
if (livelloConvertito == 2)
{
    Console.WriteLine("Sei un moderatore.");
}

In questo caso, convertiamo l’enum LivelliDiAccesso in un valore intero per confrontarlo direttamente con un numero.

Convertire gli enum in stringhe

Un altro vantaggio degli enum è la possibilità di convertirli facilmente in stringhe per visualizzarli o gestirli in altri modi. La conversione da enum a stringa è semplice:

LivelliDiAccesso livello = LivelliDiAccesso.Utente;
string nomeLivello = livello.ToString();
// Stampa "Utente" 
Console.WriteLine(nomeLivello);

È anche possibile convertire una stringa in un enum, utilizzando il metodo Enum.Parse:

string input = "Amministratore";
LivelliDiAccesso livello = (LivelliDiAccesso)Enum.Parse(typeof(LivelliDiAccesso), input);
// Stampa "Amministratore" 
Console.WriteLine(livello);

Conclusione

Gli enum in C# sono uno strumento potente che consente di gestire in modo più ordinato insiemi di valori costanti, migliorando la leggibilità e la manutenibilità del codice. Grazie alla loro capacità di essere utilizzati come costanti numeriche e di essere facilmente convertiti in stringhe, rappresentano una scelta ideale per molti scenari di programmazione.

Corsi correlati

In Arrivo

Design Pattern per videogiochi

I Design Pattern sono soluzioni a problemi comuni che si incontrano nello sviluppo del software. Nel contesto dei videogiochi, questi pattern possono aiutare a gestire la complessità crescente dei giochi moderni. Sei appassionato di videogiochi? Hai mai pensato a come vengono progettati e sviluppati? Sei curioso di scoprire i segreti dietro la creazione dei tuoi giochi preferiti? Allora sei nel posto giusto! Questo corso è stato progettato per fornirti una solida comprensione dei Design Pattern, strumenti fondamentali per ogni sviluppatore di giochi. Attraverso esempi pratici e realistici, esploreremo insieme come questi pattern possono aiutarti a creare giochi più efficienti, flessibili e mantenibili.

In Arrivo

Corso Fondamenti di Python

Python, uno dei linguaggi di programmazione più popolari al mondo, è ampiamente utilizzato da colossi dell’informatica e della tecnologia come Google, la Nasa e Mozilla.
Questo corso sui fondamenti di Python esplorerà le ragioni del suo successo duraturo. Impareremo la potente ed espressiva sintassi di Python, che consente di ottenere risultati impressionanti con poche righe di codice.

In Arrivo

Blender Masterclass 2

I paesaggi, in generale, possono risultare intimidatori data la loro complessità, costituita da numerosi elementi che sembrano formare qualcosa di virtualmente infinito. Durante le lezioni di questo corso, ci concentreremo su una scomposizione delle diverse fasi coinvolte nella creazione di una scena, affrontandole una alla volta attraverso passi graduati.

In Arrivo

Blender Masterclass 1

In questo corso di Blender 3D, Masha, in collaborazione con Gedemy, vi mostrerà il processo di modellazione, UV mapping, shading, e texture painting di un asset. Una volta apprese le basi, vedremo anche come effettuare il baking delle textures e la preparazione con successivo export della mesh in modo che possa essere utilizzabile all’interno di un qualsiasi altro software.

Crea il tuo account gratuito Gedemy

Gedemy è la piattaforma di formazione che ti permette di sviluppare competenze verticali corsi in un unico piano realizzati da esperti in ambiti come Marketing, Business, Design, Tech, AI e molto altro.

Login

Oppure

Non sei ancora registrato?