C#|lambda 表示式精簡過程
阿新 • • 發佈:2021-09-28
強大的Lambda
表示式,簡潔到你懵逼。我們知道沒有Lambda
表示式之前是delegate
匿名錶達式。
注意看下下面程式碼的註釋,明瞭一下整個省略過程。這裡還有之前的一篇筆記https://www.cnblogs.com/huvjie/p/15321191.html。可以結合起來一起看一下。
using System; namespace ConsoleApp1 { class Program { delegate double Mydel(int par); // 委託 static void Main(string[] args) { Mydel del = delegate (int x) { return x + 1; }; // 最初的匿名方法形式 // 1。lambad 表示式必須在引數數量,型別,位置上與委託相匹配 Mydel le1 = (int x) => { return x + 1; }; // 完整Lambda 表示式 // 2。表示式不一定需要包含型別(隱式型別),出了 ref 和 out 引數 Mydel le2 = (x) => { return x + 1; }; // 省略型別 // 3。如果只有一個引數,並且是隱式型別,周圍的圓括號都可省略;如果沒有引數則必須要有圓括號 Mydel le3 = x => { return x + 1; }; // 省略圓括號 // 4。 如果語句塊包含一個返回語句,可以將語句塊替換成 return 後面的表示式 // 看起來像省略了 return 和 後面的{}對和分號 Mydel le4 = x => x + 1; // 最簡,看起來像 le4 = x + 1; Console.WriteLine("{0}", del(100)); Console.WriteLine("{0}", le1(100)); Console.WriteLine("{0}", le2(100)); Console.WriteLine("{0}", le3(100)); Console.WriteLine("{0}", le4(100)); Console.Read(); } } }
輸出:
101
101
101
101
101
參考:
1.《圖解教程》P253