C# Language Méthodes Lambda & Anonymous


Exemple

Une méthode anonyme peut être affectée partout où un délégué est attendu:

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

Les expressions lambda peuvent être utilisées pour exprimer la même chose:

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

Dans les deux cas, nous pouvons maintenant appeler la méthode stockée dans un square comme ceci:

var sq = square.Invoke(2);

Ou comme un raccourci:

var sq = square(2);

Notez que pour que l'affectation soit de type sécurisé, les types de paramètre et le type de retour de la méthode anonyme doivent correspondre à ceux du type délégué:

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