Lambda 表達式是 C# 3.0 引入的語法糖,為編寫匿名方法提供更簡潔、函數式的句法。其本質仍是委派,只是寫法更直觀。
public delegate int Calculate(int a, int b);
public static int Add(int a, int b) => a + b;
static void Main()
{
Calculate calc = new Calculate(Add);
Console.WriteLine(calc(3, 4)); // 7
}
Calculate calc = delegate(int a, int b) { return a + b; };
// 完整語法
Calculate calc = (int a, int b) => { return a + b; };
// 型別推斷 + 隱含 return
Calculate calc = (a, b) => a + b;
return。Where、Select 等)皆接受 Func<T, bool> 等委派,Lambda 讓查詢語法極度可讀。將 Lambda 指派給 Expression<Func<T, TResult>>,編譯器會產生運算式樹(AST),而非 IL。這使得程式碼可在執行時被分析、修改、轉譯為 SQL(如 Entity Framework)或動態編譯為高效能委派。