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
Creazione di plugin per Tailwind CSS: espandere le Funzionalità del Framework
Reactive form tipizzati con modellazione del FormBuilder in Angular
Utilizzare ChatGPT con Azure OpenAI
Utilizzare Tailwind CSS all'interno di React: installazione
Eseguire query manipolando liste di tipi semplici con Entity Framework Core
Gestire domini wildcard in Azure Container Apps
Utilizzare Model as a Service su Microsoft Azure
Eseguire una GroupBy per entity in Entity Framework
Copiare automaticamente le secret tra più repository di GitHub
Trasformare qualsiasi backend in un servizio GraphQL con Azure API Management
Sfruttare lo streaming di una chiamata Http da Blazor
Gestire undefined e partial nelle reactive forms di Angular