C 多播委託

2022-06-29 02:45:11 字數 945 閱讀 8897

昨天第一次學到了多播委託,記錄一下最簡單的用法。

顧名思義,多播委託就像廣播一樣,由乙個委託例項引用多個方法。通過 +=和-= 運算子實現對引用方法的增加和減少。

1

static

void main(string

args)211

public

static

void

test1()

1215

public

static

void

test2()

1619

public

static

void

test3()

2023

/*24

* func1

25func2

26func3

27-------------------

28func1

29func3

30*/

當按  委託例項()  的方法呼叫它所引用的方法時,會按照引用的先後順序依次條用所有方法。如果在呼叫時其中乙個方法出現異常,那麼其後的所有方法都會停止呼叫。

另外,也可通過 getinvocationlist() 方法拿到委託例項所引用的方法的列表,從而進行進一步的操作,這個方法的描述為:「按照呼叫順序返回此多路廣播委託的呼叫列表」

1

static

void main(string

args)211

}12//func1

13//

func2

14//

func3

還有一點,如果將委託例項所引用的方法全部去掉,再執行 委託例項() 會丟擲空值異常:

C 多播委託

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

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

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

c 委託 與多播委託delegate

委託又叫匿名函式,首先我們來說為什麼要使用委託 委託到底是什麼 舉乙個例子 我想求煉表裡少於10的數的和,getsum static int getsum listlist return sum 我又想求煉表裡所有奇數的和,那麼是否是又要寫乙個函式getsum2 來求呢 static int get...