Sự khác biệt giữa Lambda và Delegate là gì?

{{FormatNumbertoThousand(model.total_like)}} lượt thích
488 lượt xem
C#/.Net master

Chúng thực sự là hai thứ rất khác nhau.

  • Delegate thực sự là tên của một biến chứa tham chiếu đến một phương thức hoặc lambda, và lambda là một phương thức không có tên cố định.
    delegate Int32 BinaryIntOp(Int32 x, Int32 y);
  • Lambda rất giống các phương thức khác, ngoại trừ một vài khác biệt nhỏ:
    • Một phương thức bình thường được định nghĩa trong một "statement" và gắn với một tên cố định, trong khi một lambda được định nghĩa trong một "biểu thức" và không có tên cố định.
    • Lambda có thể được sử dụng với cây biểu thức .NET, trong khi các phương thức thì không thể.

Một lambda có thể được định nghĩa như thế này:

BinaryIntOp sumOfSquares = (a, b) => a*a + b*b;
{{login.error}}