Le semplificazioni all'istruzione switch introdotte in C# 8

di Stefano Mostarda, in .NET Framework,

L'istruzione switch è sempre stata al centro di discussioni tra gli sviluppatori C#. Alcuni preferiscono questa istruzione mentre altri preferiscono utilizzare l'istruzione if ritenendo switch eccessivamente verbosa e poco chiara.
A partire da C# 8, l'istruzione switch è stata notevolmente semplificata tanto da poter dire che questa è generalmente da preferire alle if. Prendiamo il seguente enum come esempio.

public enum Country 
{
    Italy,
    France,
    UK
}

Supponiamo di voler creare un metodo che restituisce il nome dell'inno in base alla nazione passata in input. Se usassimo le if, il codice sarebbe il seguente.

string GetAnthem(Country country)
{
    if (country == Country.Italy)
    {
      return "Fratelli d'Italia";
    }
    else if (country == Country.France)
    {
      return "La marsigliese";
    }
    else if (country == Country.UK)
    {
      return "God save the queen";
    }
    throw new Exception("Anthem not found")
}

Se invece usassimo la sintassi basata sul nuovo switch il codice sarebbe il seguente.

string GetAnthem(Country country) =>
  country switch
    {
        Country.Italy => "Fratelli d'Italia",
        Country.France => "La marsigliese",
        Country.UK => "God save the queen",
        _ => throw new Exception("Anthem not found"),
    }

Come si evince dal codice, le novità rispetto al passato sono molte. Innanzitutto la parola chiave switch viene messa dopo il nome della variabile. Poi l'istruzione case e i ":" sono rimpiazzati da "=>". Il valore di default è dichiarato con il carattere di discard "_". Infine, il body di ogni elemento è un'espressione.

Come si vede, la sintassi del nuovo switch è estremamente chiara e compatta il che comporta un magior utilizzo di questa istruzione rispetto al passato

Commenti

Visualizza/aggiungi commenti

Le semplificazioni all'istruzione switch introdotte in C# 8 (#529) 1010 3
| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

Nessuna risorsa collegata

I più letti di oggi