C 匿名方法和拉姆達表示式

2021-06-26 22:23:22 字數 656 閱讀 2439

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

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

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

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

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

(param)=>expr

param是輸入引數列表,expr是乙個表示式或者一系列語句。

規則:1、在乙個具有唯一的顯示型別引數的lambda表示式中,圓括號可以從引數列表中刪除。

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

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

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

expr 為語句的時候:

namespace delegatesample

", str);

};pd("the quick brown fox jumps oyer a lazy dog.");}}

}

出處:擴充套件閱讀:

譯文:

C 匿名方法和拉姆達表示式

匿名方法本質上是一傳遞給委託的 塊,是使用委託的另一種方法。規則 1 匿名方法中不能使用跳轉語句跳至次匿名方法的外部,反之亦然 匿名方法外部的跳轉語句也不能跳轉到匿名方法的內部 2 在匿名方法的內部不能訪問不安全的 另外,也不能訪問在匿名方法外部定義的ref和out引數。3 可以使用在匿名方法外部定...

關於常用的Lambda 拉姆達 表示式

iso c 11 標準的一大亮點是引入lambda表示式。基本語法如下 capture list parameter list return type 其中除了 其中捕獲列表可以為空,可以是this 和 復合語句 相當於具名函式定義的函式體 其它都是可選的。它的型別是唯一的具有成員operator ...

委託的實現匿名函式和朗姆達表示式

委託 delegate 乙個表示方法的資料型別。間接派生於system.delegate 委託是乙個引用型別,但不必用new來例項化它。直接傳遞名稱,而不是現實例項化。這是c 2.0開始支援的乙個新語法,成為委託推斷 delegate inference 1 namespace delegateex...