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
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
I più letti di oggi
- Effettuare il multi-checkout in linea nelle pipeline di Azure DevOps
- Esaminare documenti XML con namespace utilizzando LINQ to XML
- Gli oggetti CallOut di Expression Blend 4.0
- Sfruttare una CDN con i bundle di ASP.NET
- Le DirectInk API nella Universal Windows Platform
- Alleggerire le applicazioni WPF sfruttando gli oggetti Freezable
- Inserire le news di Punto Informatico nel proprio sito


