匿名方法本質上是一傳遞給委託的**塊,是使用委託的另一種方法。
規則:1、匿名方法中不能使用跳轉語句跳至次匿名方法的外部,反之亦然;匿名方法外部的跳轉語句也不能跳轉到匿名方法的內部;
2、在匿名方法的內部不能訪問不安全的**。另外,也不能訪問在匿名方法外部定義的ref和out引數。
3、可以使用在匿名方法外部定義的其他變數。
拉姆達表示式:就是匿名方法,只是語法不同。
(param)=>expr
param是輸入引數列表,expr是乙個表示式或者一系列語句。
規則:1、在乙個具有唯一的顯示型別引數的lambda表示式中,圓括號可以從引數列表中刪除。
2、當輸入引數不唯一時,括號不能省略。
3、輸入引數列表中的各引數可以顯式指定型別,也可以省略引數型別,具體型別通過型別判斷機制判斷。
4、expr可以只包含乙個計算表示式,也可以包含一系列語句,只是語句需要包含在大括號中。
expr 為語句的時候:
using system;
using system.collections.generic;
using system.linq;
using system.text;
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...