Con l'introduzione di LINQ e delle lambda, C# ha permesso di dichiarare in modo molto semplice delle anonymous function inline. Quando una function inline va a utilizzare una variabile contenuta nel contesto del suo contenitore, a runtime avviene una nuova allocazione della variabile all'interno del contesto della function. Per capire meglio questo concetto, prendiamo il seguente esempio.
void Calcola()
{
int y = 1;
CalcolaInternal(x => x + y);
}In questo caso, la variabile y viene allocata una volta all'interno del metodo Calcola e un'altra volta all'interno della lambda in input al metodo CalcolaInternal. Questa doppia allocazione può essere evitata dichiarando la lambda come statica e dichiarando la variabile y come costante.
void Calcola()
{
const int y = 1;
CalcolaInternal(static x => x + y);
}Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Fornire parametri ad un Web component HTML
Mappare una complex property di una entity su un campo JSON
Utilizzare il Null conditional assignment di C# 14
Gestione opzioni colonna nella Blazor QuickGrid
Configuratione e utilizzo .NET Aspire CLI
Definire il metodo di rilascio in .NET Aspire
Eseguire i pre-commit hook di git con dependabot
Keynote .NET Conference Italia 2025
Configurare OpenAI in .NET Aspire
Supportare la crittografia di ASP.NET Core con Azure Container App
Evidenziare una porzione di testo in un pagina dopo una navigazione
Implementare il throttle in JavaScript




