Utilizzare il pattern matching per semplificare le espressioni

di Stefano Mostarda, in .NET Framework,

A volte capita di avere a che fare con metodi che tornano un oggetto di tipo Object. Questo oggeto potrebbe essere di diversi tipi e dovremmo eseguire del codice in base al tipo e ai valori dell'oggetto. Queste operazioni sono sempre state possibili sin dalla prima versione di C#, ma sono diventate sempre più semplici man mano che il liguaggio è evoluto nelle versioni successive.
Attualmente il modo più semplice e conciso per scrivere queste espressioni è usare il pattern matching come nel seguente snippet.

object x = GetValue();
if (x is int and 0) 
{
  //esegue questo codice se x è un intero e se ha valore zero
}
else if (x is string and "ciao")
{
  //esegue questo codice se x è una stringa e ha valore ciao
}


come si vede dal codice, usiamo la parola chiave is per identificare il tipo dell'oggetto e poi usiamo and per comparare l'oggetto con un altro valore che vogliamo. Il bello di questa sintassi è che la comparazione è type-safe. Se infatti scrivessimo una cosa tipo x is string and 0, otterremmo un errore di compliazione in quanto 0 è un intero, ma abbiamo specificato che la seconda parte dell'if è valutata solo se x è una stringa ottenendo così un mismatch dei tipi.

Commenti

Visualizza/aggiungi commenti

| 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