Są takie same. Pierwsze dwa to przykłady anonymous methods. Ostatni jest przykładem lambda expression. Metody anonimowe i wyrażenia lambda są wspólnie nazywane anonimowymi funkcjami.
Metody anonimowe zostały wprowadzone w C# 2; Wyrażenia lambda zostały wprowadzone w C# 3 i w większości zastąpiły metody anonimowe. Zauważ, że wyrażenia lambda można również przekonwertować na expression trees, które reprezentują kod jako dane zamiast IL, a także delegatów.
Pamiętaj, że Func<TResult>
, Func<T, TResult>
itd. To tylko przykłady typów delegatów. Można konwertować funkcje anonimowe na dowolny zgodny typ delegata. Np
public delegate int Foo(string x);
Foo foo = text => text.Length;
duplikat [delegata hasła porównaniu notacji lambda] (http://stackoverflow.com/questions/208381/whats-the-difference-between-anonymous-methods-c-2-0- i-wyrażenia lambda) i [Jaka jest różnica między nową akcją() i lambdą?] (http://stackoverflow.com/questions/765966/what-is-the-difference-between-new-action-and -a-lambda) – nawfal