Im Grunde sagt er „ich euch (s,b)
gebe“ und du mir s*b
oder etwas zurückgeben, und wenn Sie Lambda mit Ausdrücken verwenden, aber es kann so etwas wie dies: ich ihnen gebe diese (s,b)
und etwas tun mit sie in dem Anweisungsblock wie:
{
int k = a+b;
k = Math.Blah(k);
return k;
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~
Ein Lambda
Ausdruck ist eine unbenannte Methode, die anstelle einer Delegat-Instanz geschrieben wird. Der Compiler sofort wandelt die Lambda-Ausdruck entweder:
- A Delegatinstanz
- Ein Ausdruck Baum
delegate int Transformer(int i);
class Test{
static void Main(){
Transformer square = x => x*x;
Console.WriteLine(square(3));
}
}
Wir es so umschreiben könnte:
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;}
}
Ein Lambda-Ausdruck hat die folgende Form:
(parameters) => expression or statement-block
Im vorherigen Beispiel ein einzelner Parameter war, x
, und der Ausdruck ist x*x
in unserem Beispiel x entsprechen zu Parameter i, und der Ausdruck x*x
entspricht dem Rückgabetyp int
, daher kompatibel mit Transformer-Delegaten;
delegate int Transformer (int i);
ein Code der Lambda-Ausdruck kann ein Anweisungsblock statt ein Ausdruck sein. Wir können unser Beispiel wie folgt umschreiben:
x => {return x*x;}
Einen Ausdrucksbaum, vom Typ Expression<T>
, die den Code innerhalb der lamda-Expression in einem verfahrbaren Objektmodell.Dadurch kann der Lambda-Ausdruck später zur Laufzeit neu dargestellt werden. (Bitte überprüfen Sie den "Query Expression" für LINQ)
Lambda-Operator. Laut dem, was ich gelesen habe, wird es ausgesprochen, wenn man laut spricht (nur als Randnotiz). –
http://msdn.microsoft.com/en-us/library/bb397687.aspx für weitere Informationen .... –