Eine nicht so groß Vorteil für die Älteren delegate
Syntax ist, dass Sie die Parameter nicht angeben müssen, wenn Sie sie nicht im Körper der Methode verwenden. Von msdn
Es gibt einen Fall, in dem eine anonyme Methode Funktionalität bietet die es in Lambda-Ausdrücken nicht gibt. Anonyme Methoden ermöglichen das Weglassen von die Parameterliste weglassen. Dies bedeutet, dass eine anonyme Methode in Delegierte mit einer Vielzahl von Signaturen umgewandelt werden. Dies ist nicht mit Lambda-Ausdrücken nicht möglich.
Das können Sie zum Beispiel tun:
Action<int> a = delegate { }; //takes 1 argument, but not specified on the RHS
Während dies nicht gelingt:
Action<int> a = => { }; //omitted parameter, doesnt compile.
Diese Technik ist vor allem beim Schreiben von Event-Handlern nützlich, wie z.B.:
button.onClicked += delegate { Console.WriteLine("clicked"); };
Dies ist keine stark Vorteil. Imho ist es besser, immer die neuere Syntax zu verwenden.
0 Stimmen
Siehe auch was-der-unterschied-zwischen-anonymen-methoden-und-lambda-ausdrücken für allgemeine Unterschiede.