LE ENUMERAZIONI IN C#

C sharpLe enumerazioni in C Sharp sono anch’esse dei tipi da noi introdotti come le classi e le struct e come quest’ultime sono dei value types. Le enum sono strutture dati che il linguaggio ci mette a disposizione per migliorare la leggibilità e la sicurezza dei nostri programmi. Esse ci consentono di scegliere tra una serie di valori ben predefiniti. Supponiamo che il nostro codice gestisca i giorni della settimana, vediamo come si dichiara questa enum.

using System;

namespace Enumerazioni
{
    enum GiorniSettimana{Lunedi,martedi,mercoledi,giovedi,venerdi,sabato,domenica};
    class Program
    {
        static void Main(string[] args)
        {
             
        }
    }
}

Come vedi si usa la parola chiave enum seguita da un identificatore valido e da una enumerazione di valori racchiusa tra parentesi graffe. Per assegnare la nostra enumerazione ad una variabile si dichiara il tipo, la variabile e a destra dell’operatore di assegnazione un valore tra quelli ammessi.

ENUMERAZIONI IN C SHARP I VALORI DI UNA ENUMERAZIONE

Quando viene creata una enum il compilatore dietro le quinte per default genera un int e assegna alle voci dell’enumerazione degli interi in ordine crescente. Possiamo accedere a questi interi generati dal compilatore con un semplice cast, ma ci deve essere un motivo più che valido perché verrebbe meno l’utilità della enum.

Di default il compilatore genera un int, nulla ci vieta di cambiarlo con un byte.

using System;

namespace Enumerazioni
{
    enum GiorniSettimana:byte{Lunedi,martedi,mercoledi,giovedi,venerdi,sabato,domenica};
    class Program
    {
        static void Main(string[] args)
        {
            
        }
    }
}

Possiamo modificare anche i valori sottostanti alla nostra enumerazione cioè:

using System;

namespace Enumerazioni
{
    enum GiorniSettimana:byte{Lunedi=10,martedi=20,mercoledi=30,giovedi,venerdi,sabato,domenica};
    class Program
    {
        static void Main(string[] args)
        {
             
        }
    }
}

i restanti valori verranno assegnati progressivamente di una unità da 31 fino a 34.

using System;
namespace Enumerazioni
{
    enum GiorniSettimana:byte{Lunedi=10,martedi=20,mercoledi=30,giovedi,venerdi,sabato,domenica};
    class Program
    {
        static void Main(string[] args)
        {
           GiorniSettimana gs = GiorniSettimana.domenica;
           if(gs==GiorniSettimana.domenica)
              Console.WriteLine("Domenica");
           int giorno = (int)GiorniSettimana.domenica;
           /*--POSSIAMO ACCEDERE ALL'INTERO CHE STA DIETRO ALL'ENUMERAZIONE CON UN SEMPLICE CAST*/
           Console.WriteLine(giorno);   
        }
    }
}

LE ENUMERAZIONI IN C SHARP

LINK AL CODICE SU GITHUB