昨天第一次學到了多播委託,記錄一下最簡單的用法。
顧名思義,多播委託就像廣播一樣,由乙個委託例項引用多個方法。通過 +=和-= 運算子實現對引用方法的增加和減少。
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...