Fondamentalement, il dit: « Je vous donne ce (s,b)
» et vous me retournais s*b
ou quelque chose et si vous utilisez lambda avec des expressions, mais il peut être quelque chose comme ceci: je vous donne ce (s,b)
et faire quelque chose avec les dans le bloc de déclaration comme:
{
int k = a+b;
k = Math.Blah(k);
return k;
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~
Une expression Lambda
est une méthode sans nom écrite à la place d'une instance de délégué. Le compilateur convertit immédiatement l'expression lambda soit:
- Une instance de délégué
- Une expression Arbre
delegate int Transformer(int i);
class Test{
static void Main(){
Transformer square = x => x*x;
Console.WriteLine(square(3));
}
}
Nous pourrions réécrire comme ceci:
delegate int Transformer(int i);
class Test{
static void Main(){
Transformer square = Square;
Console.WriteLine(square(3));
}
static int Square (int x) {return x*x;}
}
une expression lambda a la forme suivante:
(parameters) => expression or statement-block
Dans l'exemple précédent il y avait un seul paramètre, x
, et l'expression est x*x
dans notre exemple, x correspond au paramètre i, et l'expression x*x
correspond au type de retour int
, donc compatible avec le délégué Transformer;
delegate int Transformer (int i);
Un code d'expression lambda peut être un bloc d'instruction au lieu d'une expression. Nous pouvons réécrire notre exemple comme suit:
x => {return x*x;}
Un arbre d'expression, de type Expression<T>
, ce qui représente le code dans l'expression de lamda dans un modèle d'objet traversable.Cela permet à l'expression lambda d'être interprétée ultérieurement lors de l'exécution (Veuillez vérifier l'expression de requête pour LINQ)
Opérateur Lambda. D'après ce que j'ai lu, il est prononcé "va à" quand on parle à haute voix (juste comme une note de côté). –
http://msdn.microsoft.com/en-us/library/bb397687.aspx pour plus d'informations .... –