C#基礎知識之六,
C#基礎知識之六
由朱朱編寫,轉載請註明出自朱朱家園http://blog.csdn.net/zhgl7688
1、 匿名方法:是在初始化委託裡內聯聲明的方法。組成由delegate類型關鍵字、參數列表、語句塊 ----delegate (Parameters) { ImplementationCode }。
2、 匿名方法使用地方:聲明委託變數時作為初始設定式、組合委託時在賦值語句的右邊、為委託增加事件時在賦值語句的右邊。
3、 匿名方法參數列表必須有三個方面匹配委託:參數數量、參數類型、修飾符。
4、 匿名方法省略參數列表條件:列表中不包含任何out參數和方法不使用任何參數。
5、 委託聲明的參數列表包含了Params參數,在匿名方法參數列表將忽略params關鍵字。
6、 參數和匿名方法內部局部變數的範圍限制在實現方法的主體內。
7、 匿名方法可以訪問外圍範圍的局部變數和環境。
8、 在匿名方法中實現外部變數稱為方法捕獲。只在捕獲方法還是委託的一部分,即使變數已經離開範圍,被捕獲的外部變數仍然有效。
9、 Lambda運算式:代替了匿名方法,將delegate改為運算子=>,以及簡化操作。範例:
MyDel del=delegate(int x) {return x+1; }; //匿名方法
MyDel del= (int x) =>{ return x+1; }; //Lambda方法
MyDel del= ( x ) => { return x+1; }; //Lambda方法
MyDel del= x => { return x+1; }; //Lambda方法
MyDel del= x => x+1 ; //Lambda方法
10、 Lambda運算式列表要點:參數必須在數量、類型和位置上與委託相匹配、參數不一定要包含類型(除out或ref,此類型是必須的)、一個參數時圓括弧可以省略、沒有參數時,必須使用空的圓括弧。
11、 觸發事件:調用或觸發事件的術語。當事件被觸發時,註冊到它的方法都會被依次調用。相當於觀察者模式http://blog.csdn.net/zhgl7688/article/details/41969393。
12、 聲明事件:只需要委託類型和名字,還可使用static變成靜態。
如 public event EventhandleElapsed //Eventhandle為委託類型,Elapsed為事件名。
13、 事件是成員不是類型,不能使用new來建立它的對象,其成員被隱式自動初始化為NULL。
14、 事件委託類型使用標準的預定義EventHandler,它的聲明如下:
Public delegate void EventHandler(object sender,EventArgse);
15、 訂閱事件:要為事件添加事件處理常式,處理常式必須有和事件委託一致的傳回型別和簽名,使用+=運算子來為事件增加事件處理常式。使用-=移除一個事件處理常式。
16、 事件方法有:執行個體方法、靜態方法、匿名方法、lambda運算式。
由朱朱編寫,轉載請註明出自朱朱家園http://blog.csdn.net/zhgl7688