Chúng đều giống nhau. Hai ví dụ đầu tiên là ví dụ về anonymous methods. Cuối cùng là một ví dụ về lambda expression. Các phương thức ẩn danh và biểu thức lambda được gọi chung là các chức năng ẩn danh.
Phương pháp vô danh đã được giới thiệu trong C# 2; biểu thức lambda đã được giới thiệu trong C# 3 và chủ yếu là thay thế các phương thức nặc danh. Lưu ý rằng biểu thức lambda cũng có thể được chuyển đổi thành expression trees đại diện cho mã dưới dạng dữ liệu thay vì IL, cũng như các đại biểu.
Lưu ý rằng Func<TResult>
, Func<T, TResult>
v.v ... chỉ là ví dụ về các loại đại biểu. Bạn có thể chuyển đổi các chức năng ẩn danh thành bất kỳ loại đại biểu tương thích nào. Ví dụ:
public delegate int Foo(string x);
Foo foo = text => text.Length;
Nguồn
2013-02-23 15:10:09
trùng lặp của [đại biểu từ khóa so với ký pháp lambda] (http://stackoverflow.com/questions/208381/whats-the-difference-between-anonymous-methods-c-2-0- và-lambda-biểu thức) và [Sự khác nhau giữa hành động mới() và lambda là gì?] (http://stackoverflow.com/questions/765966/what-is-the-difference-between-new-action-and -a-lambda) – nawfal