Fino alla versione 9 di C#, quando vogliamo assegnare una lambda expression a una variabile, dobbiamo assegnare alla variabile il tipo esplicito che è Func<,> o Action<,> a seconda che la funzione torni un valore o meno e a seconda del numero di parametri.
Func<string, int> parse = (string input) => Convert.ToInt32(input);
A partire da C# 10, possiamo utilizzare la parola chiave var per dichiarare la variabile a cui la lambda punta a patto che il compilatore abbia tutte le informazioni per desumere il tipo corretto.
var parse = (string input) => Convert.ToInt32(input);
Lo stesso concetto si può applicare ai method group.
//c# 9 Func<int> read = Console.Read; //c# 10 var read = Console.Read;
In questo caso il metodo Read non ha overload quindi il compilatore è in grado di desumere il tipo della variabile. Se invece del metodo Read usassimo Write, il compilatore non sarebbe in grado di desumere il tipo della variabile in quanto Write ha più overload.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Sfruttare l'output cache di ASP.NET Core 7 con i controller
Elencare le container images installate in un cluster di Kubernetes
Aggiungere le issue di più repository in una board in GitHub
YARP: un reverse proxy in ASP.NET Core
Introduzione alla security con GitHub
Collegare servizi a Azure Container App con i service connector
Costruire applicazioni native per ogni dispositivo con .NET e Visual Studio
Utilizzo di Set e Array in JavaScript
Applicare il versioning ai nostri endpoint ASP.NET Core Minimal API
Sopprimere gli errori di concorrenza quando si elimina una entity con Entity Framework 7
Gestire dati sensibili nella configurazione in ASP.NET Core
Ottenere il contenuto di una cartella FTP con la libreria FluentFTP