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 陣...