2016-05-09 8 views
0

Ich weiß, dass x => x + 1 bedeuten, erstellen Sie eine anonyme Funktion, die x + 1 zurückgibt, aber was macht cfg => {}; bedeuten?Was bedeutet C# Lambda cfg => {}?

+4

http://stackoverflow.com/questions/1743013/is-there-a-way-to-specify-an-empty-c-sharp-lambda-expression –

+0

[Lesen Sie hier] (https: // msdn. microsoft.com/en-IN/library/bb397687.aspx) vollständige Dokumentation über Lambda Expression. – Irfan

Antwort

1

Es ist ein Lambda, das nichts tut (d. H. Es ist eine void-Methode, die nicht funktioniert).

Dies kann für eine Methode erforderlich sein, die einen Aktionsdelegaten erfordert, aber Sie müssen den Rückruf nicht ausführen, damit Sie einfach ein leeres Lambda hinzufügen, um das Ergebnis zu erzielen.

+0

Großartig! Danke Leute. –

+0

und in diesem Fall müssten Sie es nicht einmal benennen, Sie hätten schreiben können() => {}, was ein anonymer Lambda ist, der keine Parameter akzeptiert und kein Ergebnis liefert. – Spence

1

Es hängt von dem Delegatentyp ab, den Ausdruck darstellen soll.

Die allgemeine Syntax einer Lamda-Ausdruck ist in der Form:

[params] => [expression] 

oder

[params] => { [method body] } 

Damit Sie wissen, was x => x + 1 Mittel, aber es ist auch gleichbedeutend mit x => { return x + 1; }, sofern es eine zugewiesen ist Variable vom Typ Func<TInput, TOutput>.

Vorausgesetzt, cfg => {} ist eine Lamda, die einige Eingaben nimmt und nichts zurückgibt, vorausgesetzt, sie ist der Variablen vom Typ Action<TInput> zugeordnet. Denken Sie daran, dass Aktionen keinen Rückgabetyp haben und die Rückgabeanweisung für solche Methoden optional ist.