C 學習day03 1 委託,委託多播

2022-09-09 08:30:13 字數 1617 閱讀 6304

using system;

/**菜鳥上關於委託

* 語法: delegate */

public class day03_1

public static int multnum(int q)

public static int getnum()

num2=", num1,num2);//40,250

return num;

}public day03_1()

",num1);//35

"value1 of num ", getnum());

nc2(5);

console.writeline("value2 of num2= ",num2);//

"value2 of num ", getnum());

/** 委託的多播(組播):

* 委託物件可使用 "+" 運算子進行合併。

* 乙個合併委託呼叫它所合併的兩個委託。

* 只有相同型別的委託可被合併。

* "-" 運算子可用於從合併的委託中移除元件委託。

* 使用委託的這個有用的特點,您可以建立乙個委託被呼叫時要呼叫的方法的呼叫列表。

*/numberchanger nc;

nc = nc1;

console.writeline("nc=>" + nc);//nc=nc1>day03_1+numberchanger

console.writeline("nc1>" ,nc1);//nc=nc1>day03_1+numberchanger

nc += nc2;

console.writeline("nc2>", nc2);//nc+=nc2>day03_1+numberchanger

console.writeline("nc+=nc2>", nc);//nc+=nc2>day03_1+numberchanger

// 呼叫多播

nc(5);

console.writeline("nc(5)=>" + getnum());//290

console.writeline("num1: num2:",num1,num2);//40,250

}}

mian方法

using system;

console.writeline("*****=main開始執行*****==");

//匯入外部類,並執行

"*****=day01開始執行*****==");

//new day01();

"*****=day02開始執行*****==");

//new day02();

console.writeline("*****=day03_1開始執行*****==");

new day03_1();

"*****=day03_2開始執行*****==");

//new day03_2();

console.writeline("*****=main執行結束*****==");}}

}

專案目錄:

C 委託,委託鏈,多播委託

委託 概念 委託是一種使用者自定義的型別.是一種類.可以把委託看成用來執行方法 函式的乙個東西 形式 delegate 函式返回型別 委託名稱 引數部分 例項化 委託型別 例項化名 new 委託型別 方法名稱 實現 usingsystem usingsystem.collections.generi...

C 多播委託

昨天第一次學到了多播委託,記錄一下最簡單的用法。顧名思義,多播委託就像廣播一樣,由乙個委託例項引用多個方法。通過 和 運算子實現對引用方法的增加和減少。1 static void main string args 211 public static void test1 1215 public st...

C 多播委託

乙個委託呼叫多個方法 例如 action a test1 a test2 增加乙個新方法,按順序執行,只能得到最後乙個方法的值 a test2 減去乙個方法 當a為空時會報錯,如果乙個方法出錯,其餘不會呼叫 取得乙個多播委託的所有方法 getinvocationlist 返回值為delegate 陣...