C# 匿名方法和拉姆達表達式的使用

匿名方法本質上是一傳遞給委託的代碼塊,是使用委託的另一種方法。

規則:

1、匿名方法中不能使用跳轉語句跳至次匿名方法的外部,反之亦然;匿名方法外部的跳轉語句也不能跳轉到匿名方法的內部;

2、在匿名方法的內部不能訪問不安全的代碼。另外,也不能訪問在匿名方法外部定義的ref和out參數。

3、可以使用在匿名方法外部定義的其他變量。

拉姆達表達式:就是匿名方法,只是語法不同。

(param)=>expr

param是輸入參數列表,expr是一個表達式或者一系列語句。

規則:

1、在一個具有唯一的顯示類型參數的Lambda表達式中,圓括號可以從參數列表中刪除。

2、當輸入參數不唯一時,括號不能省略。

3、輸入參數列表中的各參數可以顯式指定類型,也可以省略參數類型,具體類型通過類型判斷機制判斷。

4、expr可以只包含一個計算表達式,也可以包含一系列語句,只是語句需要包含在大括號中。

expr 爲語句的時候:

 1: using System;
 2: 
 3: using System.Collections.Generic;
 4: 
 5: using System.Linq;
 6: 
 7: using System.Text;
 8: 
 9: namespace DelegateSample
 10: 
 11: {
 12: 
 13: publicdelegatevoid PrintDelegate(string content);
 14: 
 15: class Program
 16: 
 17: {
 18: 
 19: staticvoid Main(string[] args)
 20: 
 21: {
 22: 
 23: PrintDelegate pd = (string str) =>
 24: 
 25: {
 26: 
 27: System.Console.WriteLine("Printing...");
 28: 
 29: System.Console.WriteLine("Content:{0}", str);
 30: 
 31: };
 32: 
 33: pd("The quick brown fox jumps oyer a lazy dog.");
 34: 
 35: }
 36: 
 37: }
 38: 
 39: }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章