多播委託的理解

2022-03-27 05:21:08 字數 604 閱讀 4008

多播委託就是讓乙個委託能有若干個方法去執行,先看乙個**:

delegate int delegatefunction(int a, int b);

class program

static int add(int x, int y)

static int minus(int x, int y)

}

用+=就可以建立多播委託,委託test原來有乙個add方法,又+=乙個minus方法;

以上**執行的結果是 x+y:x-y:1

add方法的值沒有返回回來,因為追加了委託之後就返回最後乙個追加上的委託計算出的值;

需要用遍歷才能讓每個追加的委託返回值,需做以下修改

delegate int delegatefunction(int a, int b);

class program

console.readkey();

} static int add(int x, int y)

static int minus(int x, int y)

}

輸出結果:

x+y:3

x-y:1

委託二(多播委託)

委託最令人興奮的的特性之一是它支援多播委託 multicasting 簡單地說,多播委託是指允許建立方法的呼叫列表或者鍊錶的能力。當多播委託被呼叫時,列表中的方法均自動執行。這種鍊錶很容易建立 初始化乙個誒託,然後使用 或 運算子為鍊錶新增方法。在移除乙個方法時,使用 或 如果委託有返回值,則將列表...

委託及多播委託

c 中的委託類似於c c 中的指標,委託就是概括了方法的簽名和返回值型別 委託可以理解為定義的乙個新的類。所以在可以定義類的任何地方都可以定義委託,也可以在委託的定義上加訪問修飾符 public private 等 1 定義乙個委託 類似於方法的定義 該委託表示的方法有兩個long型別引數,返回值型...

委託和委託的多播

using system namespace 委託 定義時委託型別的返回值和引數與要引用的方法的返回值和引數一致,二者在外形上一樣,只是委託用delegate修飾 委託的宣告 1.委託宣告 例如 public delegate int mydelegate string s 2.委託例項化 例如 m...