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
Eseguire i worklow di GitHub su runner potenziati
Aggiornare a .NET 9 su Azure App Service
Popolare una classe a partire dal testo, con Semantic Kernel e ASP.NET Core Web API
Creare una libreria CSS universale: Immagini
Creare una libreria CSS universale: i bottoni
Creare una custom property in GitHub
Utilizzare gRPC su App Service di Azure
Conoscere il rendering Server o WebAssembly a runtime in Blazor
Utilizzare DeepSeek R1 con Azure AI
Usare le navigation property in QuickGrid di Blazor
Filtering sulle colonne in una QuickGrid di Blazor
Gestione CSS in Blazor con .NET 9