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
Organizzare il codice JavaScript utilizzando i moduli
Utilizzare i metodi Linq MinBy e MaxBy per semplificare le ricerche degli elementi minimi e massimi in liste di oggetti complessi con LINQ
Sfruttare i tag nell'output cache di ASP.NET Core 7
Utilizzare .NET Framework con le Azure Function in modalità isolata
YARP: un reverse proxy in ASP.NET Core
Creare un job summary in una GitHub Action
Chiamare un endpoint ASP.NET Core protetto da Certificate Authentication
Utilizzare l'attributo autofill del CSS
Gestire server e pc on premise con Azure Arc
Migrare un progetto ASP.NET Core da .NET 6 a .NET 7
Costruire applicazioni native per ogni dispositivo con .NET e Visual Studio
Sfruttare l'output cache di ASP.NET Core 7 con i controller
I più letti di oggi
- Effettuare il download di un file via FTP con la libreria FluentFTP di .NET
- Sfruttare la local cache del browser tramite gli ETag in #aspnetcore https://aspit.co/cfc di @crad77 #webapi #aspnetmvc #blazor #cache
- Catturare la telemetria degli eventi di output cache in ASP.NET Core
- Taggare la output cache in base al routing in ASP.NET Core
- Effettuare l'upload di un file via FTP con la libreria FluentFTP di .NET