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

C# 3.0 入門【Lambda 表達式】第三章(一):Lambda 與匿名方法語法逐項對比——六大差異與 => 運算子解析

     編輯:關於C語言

程式碼對比:同樣邏輯,兩種寫法

delegate int SampleDelegate(int x, int y);

class Program
{
    static void Calculate(int x, int y, SampleDelegate calculator)
    { Console.WriteLine(calculator(x, y)); }

    static void Main()
    {
        // 匿名方法
        Calculate(1, 2, delegate(int x, int y) { return x + y; }); // 輸出 3

        // Lambda 表達式
        Calculate(1, 2, (x, y) => x + y); // 輸出 3
    }
}

字面差異六大項

項目匿名方法Lambda 表達式
關鍵字delegate無
return需寫 return隱含(運算式本體)
參數型別必須宣告 int x, int y型別推斷省略
大括號需 { }運算式本體可省略
分號區塊內需分號運算式本體無分號
新符號—=> (goes to)

逐項解析

  • 型別推斷:編譯器根據委派簽章 SampleDelegate(int, int) 推斷 x, y 為 int,回傳型別推斷為 int。
  • =>:讀作「goes to」,左邊為輸入參數,右邊為運算式/語句本體。
  • 運算式本體 vs 語句本體:(x, y) => x + y 為運算式本體(隱含 return);(x, y) => { return x + y; } 為語句本體(需大括號與 return),兩者等價。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved