Was bedeutet die () bedeuten, in einem lambda-Ausdruck bei der Verwendung von Aktionen?
Ich habe eingefügten code von Jon Skeet ist C# In der Tiefe der Seite:
static void Main()
{
//First build a list of actions
List<Action> actions = new List<Action>();
for (int counter = 0; counter < 10; counter++)
{
actions.Add(() => Console.WriteLine(counter));
}
//Then execute them
foreach (Action action in actions)
{
action();
}
}
http://csharpindepth.com/Articles/Chapter5/Closures.aspx
Beachte die Zeile:
Aktionen.Add( ()
Was bedeutet die () bedeuten in den Klammern?
Ich habe gesehen, einige Beispiele für lambda-Ausdrücke, die Delegierten, die Verwendung des Action-Objekt, etc, aber ich habe keine Erklärung für diese syntax. Was tut es? Warum ist es notwendig?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist die Kurzform für die Deklaration einer lambda-Ausdruck, der nimmt keine Argumente an.
()
Ist obligatorisch, wenn Sie brauchen, um Masse von mehr als einem parameter:(x,y) => x * y
Das ist ein lambda-Ausdruck ohne Parameter.
Ich denke, der lambas wie diese:
(x) => { return x * 2; }
Aber nur das ist wichtig:
(x) => { return x * 2; }
Müssen wir den => zu wissen, dass es eine lambda-anstelle des casting, und damit erhalten wir dies:
x => x * 2
(sorry für die nicht-Formatierung code als code, das ist, weil Sie nicht Dinge, die Fett im code..)
Vom MSDN. Ein lambda-Ausdruck hat die form (Eingänge)=>Ausdruck. So ein lambda-Ausdruck wie in ()=>Ausdruck bezeichnet, es gibt keine Eingabe-Parameter. Was die Unterschrift für die Aktion keine Parameter
Was diese Zeile macht ist das hinzufügen von einem anonymen Aktion der Liste lambda-Ausdrücken, die keine parameter haben (das ist der Grund, warum Sie die () - gibt es) und gibt nichts zurück, aufgrund der Tatsache, dass es druckt nur den tatsächlichen Wert des Zählers.
Zeigt es an anonyme Funktion ohne parameter.