單播委託:乙個委託只指向乙個方法;
多播委託:乙個委託指向多個方法,形成乙個方法鏈;
main是靜態方法,裡面只能引用靜態方法,而不能引用例項方法;
main可以進行類的例項化,然後引用例項化後的方法;
委託的使用流程:宣告委託,例項化委託,繫結事件,呼叫委託(也就是呼叫委託繫結的方法);
宣告委託的地方:1類的外面
2類的裡面,方法的外面;
不能在方法的裡面宣告委託;
委託例項化的方法
1用new
關鍵字,將乙個
new委託賦值給委託
2不用new
,直接將乙個方法賦值給委託
第一次例項化(第一次繫結方法):mydelegate mydel2 = new mydelegate(add);或mydelegate mydel=cal.add;
第二次繫結方法(多播委託)del += f3;mydel2 +=new mydelegate(add);
+=可以是增加乙個新的方法,也可以增加乙個新的委託
new delega
,型別必須相同;
+=增加委託方法,
-+刪除委託方法;
在沒有增加某方法時進行-=刪除操作,也不會報錯;
del del = (del)delegate.combine(new del(f1), new del(f2));
關於delegate.combine方法,兩個引數必須為同種型別的委託,即使兩個委託的引數返回值都一樣也不行;
也就是兩個引數必須使用同乙個宣告的委託型別;否則報錯;
combine返回值是delegate基型別,必須顯示轉換為引數的那種型別;否則報錯;
接收型別和兩個引數型別必須是同乙個委託宣告的型別;否則報錯;
例如:下面三個委託宣告型別相同,但是不能用在combine方法中;
combine方法很雞肋,又複雜,要求又多;
public delegate void del();
public delegate void del_1();
public delegate void del_2();
C 委託 委託概述
c 委託概述 委託這個詞在生活中經常用到,委託律師打官司,委託房地產公司購買房子。委託保險 人辦理保險。委託就是把事情交給別人去辦。c 中的委託和生活中的委託很相似,如果將乙個方法委託給乙個物件,那麼這個物件就可以全權 這個方法執行。委託宣告定義乙個類,它是從 system.delegate 類派生...
C 委託 匿名委託
c 委託 匿名委託 委託變數在繫結方法時,是把方法名賦值給了委託變數名,這 樣就需要在類裡面定義方法,而有些方法只用到了 次,這樣的 方法在類裡面過多時,程式的可讀性就不是太好,針對這種情 況,可以使用匿名委託,即不用在類裡面額外定義方法.delegate定義的匿名委託 格式 delegate 引數...
C 委託,委託鏈,多播委託
委託 概念 委託是一種使用者自定義的型別.是一種類.可以把委託看成用來執行方法 函式的乙個東西 形式 delegate 函式返回型別 委託名稱 引數部分 例項化 委託型別 例項化名 new 委託型別 方法名稱 實現 usingsystem usingsystem.collections.generi...