委託型別包含3個重要的資訊:(方法簽名)
1.它所呼叫的方法的名稱;
2.該方法的引數(可選);
3.該方法的返回值型別(可選)
.net委託既可以指向靜態方法,也可以指向例項方法。
委託機制所利用的命名空間:system.multicastdelegate與system.delegate基類。
using system;
namespace ******delegate
public static int subtract(int x, int y)
}class program
",b(10, 10));
console.readkey();}}
}
※如果要將目標物件方法插入指定委託物件,只要向委託的建構函式傳入方法名稱即可。
using system;
namespace genericdelegate
static void stringtarget(string arg)", arg.toupper());
}static void inttarget(int arg)", ++arg);}}
}
事件:類似於異常,它們都是由物件引發(丟擲,達到某種條件觸發),並且可以通過我們提供的**來處理,並且必須訂閱它們;訂閱乙個事件的含義是提供**,在事件發生時執行這些**,它們稱為事件處理程式。
定義乙個事件分為兩個步驟:1. 需要定義乙個委託型別,它包含在事件觸發時將要呼叫的方法;
2. 通過event關鍵字用相關委託宣告這個事件。
C 基礎 委託 Lambda表示式和事件
下面用乙個例子簡單展示下委託 lambda表示式和事件的應用 使用氣泡排序實現任意物件的排序 要排序的employee類 using system using system.collections.generic using system.text namespace 委託 lambda表示式和事件...
委託 lambda表示式
呼叫委託的的時候,其包含的每乙個方法都會被執行。委託要求,定義的簽名和返回型別必須一致。建立委託需要注意的地方 因為大部分的委託需要重用,而事件不用,所以前者寫在類外邊,後者寫在類裡邊。一般委託寫在類的外邊,並且用public宣告。委託只有乙個規矩,就是輸入輸出一樣就行,那他屬於乙個委託,你可以把它...
委託 lambda表示式
呼叫委託的的時候,其包含的每乙個方法都會被執行。委託要求,定義的簽名和返回型別必須一致。建立委託需要注意的地方 因為大部分的委託需要重用,而事件不用,所以前者寫在類外邊,後者寫在類裡邊。一般委託寫在類的外邊,並且用public宣告。委託只有乙個規矩,就是輸入輸出一樣就行,那他屬於乙個委託,你可以把它...