using system;
namespace _委託
// 定義時委託型別的返回值和引數與要引用的方法的返回值和引數一致,二者在外形上一樣,只是委託用delegate修飾;
委託的宣告:
1. 委託宣告; 例如: public delegate int mydelegate(string s);
2. 委託例項化; 例如: mydelegate mydlegate = new mydelegate(引數);
3. 呼叫委託;
委託是物件導向的,型別是安全和保險的,委託既能呼叫靜態方法,又能引用例項方法;
*/#region 例1 委託呼叫: 委託例項化和呼叫委託在main()中
#endregion
// 1. 先宣告乙個委託
delegate int mydelegate(int num); // 委託宣告
public static int number=10;
public static int addnum(int a)
public static int addnum_1(int a)
public static int addnum_2()
/*
// 委託的多播:
委託是乙個類,可以作為引數來傳遞;
值能合併相同的委託, 委託物件可以使用"+" 運算子來進行合併,乙個合併委託呼叫它所合併的兩個委託,
"-" 運算子可以用於從合併的委託中移除元件委託;
*/#region 委託的多播: 可以用"+"運算子來進行合併, 也可以用"-"從合併的委託中移除元件委託
#endregion
// 例2:
// 1. 先宣告乙個委託
public delegate void talk(string name);
// 2. 定義2個構造方法,用於合併委託
public static void sayhello(string name),你好,我在世界城",name);
}public static void speak(string name),me too,nice too meet you",name);
}public static void main (string args)}}
委託二(多播委託)
委託最令人興奮的的特性之一是它支援多播委託 multicasting 簡單地說,多播委託是指允許建立方法的呼叫列表或者鍊錶的能力。當多播委託被呼叫時,列表中的方法均自動執行。這種鍊錶很容易建立 初始化乙個誒託,然後使用 或 運算子為鍊錶新增方法。在移除乙個方法時,使用 或 如果委託有返回值,則將列表...
委託及多播委託
c 中的委託類似於c c 中的指標,委託就是概括了方法的簽名和返回值型別 委託可以理解為定義的乙個新的類。所以在可以定義類的任何地方都可以定義委託,也可以在委託的定義上加訪問修飾符 public private 等 1 定義乙個委託 類似於方法的定義 該委託表示的方法有兩個long型別引數,返回值型...
泛型委託和多播委託
1.泛型委託,返回引數傳t,引數傳乙個委託型別的引數tresult class program intmax getmax int nums,compare1 console writeline max string names string max1 getmax string names,str...