C# Language Lambda e metodi anonimi


Esempio

Un metodo anonimo può essere assegnato ovunque sia previsto un delegato:

Func<int, int> square = delegate (int x) { return x * x; }

Le espressioni Lambda possono essere utilizzate per esprimere la stessa cosa:

Func<int, int> square = x => x * x;

In entrambi i casi, ora possiamo invocare il metodo memorizzato all'interno di un square come questo:

var sq = square.Invoke(2);

O come una stenografia:

var sq = square(2);

Si noti che per l'assegnazione del tipo sicuro, i tipi di parametri e il tipo restituito del metodo anonimo devono corrispondere a quelli del tipo delegato:

Func<int, int> sum = delegate (int x, int y) { return x + y; } // error
Func<int, int> sum = (x, y) => x + y; // error