C# aggiornamento entity

Novità in C# 7.1

A distanza di qualche mese dalla pubblicazione analizziamo alcune delle novità in C# 7.1.

C# 7.1 è stato pubblicato con l’upgrade 15.3 di Visual Studio 2017 (Agosto 2017). A differenza di altri rilasci, non tutte le novità sono disponibili automaticamente dopo l’aggiornamento, ma è necessario modificare manualmente la configurazione di Visual Studio. E’ possibile abilitare le nuove features del linguaggio dalla scheda Avanzate presente nelle proprietà di Compilazione del progetto.Visual Studio Impostazione per C#Per impostazione predefinita Visual studio utilizza l’ultima major version: per poter abilitare le novità degli ultimi rilasci è necessario impostare latest minor version.

Nel seguito di questo articolo vedremo alcune delle novità di C# 7.1.

Async Main

La prima novità riguarda la possibilità di utilizzare codice sincrono all’interno di applicazioni Console. Il metodo main ha subito una sostanziale modifica, prima le sue firme erano:

Con l’aggiornamento sono state introdotte anche le seguenti firme:

Non è più necessario richiamare un metodo asincrono dal metodo main, ma è possibile utilizzare direttamente async ed await all’interno del metodo Main.

Default Literal Expressions

Utilizzando la keyword default è possibile assegnare ad una variabile il valore di default del suo tipo.

In C# 7.1, quando è possibile determinare il tipo di variabile (ad esempio quando stiamo utilizzando una variabile con var), è possibile semplificare la sintassi nel seguente modo:

Il valore di default di un tipo può essere utilizzato come valore di ritorno da una funzione, come valore di default per un parametro opzionale e come valore per i parametri di un metodo.

Inferred Tuple Element Names

Il concetto di Tupla è stato introdotto in C# a partire dalla versione 7.0. Nella defizione di una tupla l’accesso ai suoi elementi può avvenire utilizzando Item1, Item2, ecc…

L’alternativa può essere quella di specificare il nome in fase di defizione della tupla:

In C# 7.1 è stata introdotta la possibilità di recuperare il valore dell’oggetto direttamente dal suo nome:

Generic Pattern Matching

Dalla versione 7.0 è possibile utilizzare la keyword is per confrontare i tipi. Non era però possibile effettuare confronti in presenza di metodi generici. Ora è possibile scrivere codice del tipo:

Pubblicato da

Andrea Merlin

Laureato in informatica, diversi corsi di specializzazione legati allo Sviluppo Software e alla Computer forensics. Appassionato di nuove tecnologie, amo la programmazione, la Business Intelligence e tematiche legate alla Privacy.Sempre alla ricerca di nuove idee, stimoli … e progetti da seguire!Amo trascorrere il tempo libero in Val Borbera, un piccolo angolo del Piemonte, in provincia di Alessandria.