首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 3.0 入門【Lambda 表達式】第五章(三):Lambda 表達式各種變體完整速查表與下章預告:型別推斷與委派類別庫

     編輯:關於C語言

List 20:Lambda 變體完整範例

delegate int NoArg();
delegate int OneArg(int onlyOne);
delegate int TwoArgs(int first, int second);
delegate void NoRetVal();

class Program
{
    static void Main()
    {
        NoArg sample1 = () => 0;                           // 無參數
        OneArg sample2 = (x) => x * 2;                     // 單參數帶括號
        OneArg sample3 = (int x) => x * 2;                 // 單參數顯式型別
        OneArg sample4 = x => x * 2;                       // 單參數省略括號
        TwoArgs sample5 = (x, y) => x * y;                 // 多參數
        TwoArgs sample6 = (int x, int y) => x * y;         // 多參數顯式型別
        OneArg sample7 = (x) => { return x * 2; };         // 語句本體
        OneArg sample8 = (int x) => { return x * 2; };     // 語句本體+型別
        NoRetVal sample9 = () => Console.WriteLine("Hello!"); // void 語句本體
    }
}

變體關鍵規則速記

形式規則
() => ...無參數必須寫空括號
(x) => ...單參數括號可省略:x => ...
(x, y) => ...多參數必須括號、逗號分隔
(int x) => ...可選擇性指定參數型別
{ return ...; }語句本體需大括號、return、分號
() => Method()void 方法調用作為語句本體

下章預告:型別推斷與委派類別庫

  • 深入「類型推斷」:編譯器如何從委派簽章推斷 Lambda 參數/回傳型別。
  • 實戰 Action<T>、Func<T, TResult> 等框架內建委派類型應用。
  • 掌握這兩點,Lambda 表達式才算真正精通。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved