程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> [C# 3.0 入門] [第一章 Lambda表達式] 第三節:Lambda與匿名方法的區別(1)

[C# 3.0 入門] [第一章 Lambda表達式] 第三節:Lambda與匿名方法的區別(1)

編輯:關於C語言

Lambda表達式與匿名方法的區別

那麼,為什麼Lambda表達式比匿名方法寫起來要短呢?這種像變戲法一樣的手法真的能用嗎?有沒有重要信息遺漏掉呢?為了回答這些問題,就讓我們把匿名方法和Lambda表達式比較一下,看看Lambda表達式究竟怎麼寫。

1using System;
2
3delegate int SampleDelegate(int x, int y);
4
5class Program
6{
7  private static void Calculate(int x, int y, SampleDelegate calculator)
8  {
9    Console.WriteLine(calculator(x, y));
10  }
11
12  static void Main(string[] args)
13  {
14    // 匿名方法
15    Calculate(1, 2,
16      delegate(int x, int y) { return x + y; }); // 輸出:3
17
18    // Lambda表達式
19    Calculate(1, 2, (x, y) => x + y); // 輸出:3
20  }
21}
22

List9 匿名方法與Lambda表達式的比較

這段代碼中,下述部分分別是匿名方法和Lambda表達式的寫法:

匿名方法

delegate(int x, int y) { return x + y; }

Lambda表達式

(x, y) => x + y

字面上比較一下就能發現以下不同:

* delegate關鍵字沒有了

* return關鍵字沒有了

* 指定參數的類型的int沒有了

* 中括號“{ }”沒有了

* 行尾的分號“;”沒有了

* 新出現了“=>”這兩個字符

下面,對這些區別,一個一個來解釋。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved