C 中的委託與事件並存的理由

2022-03-07 18:22:33 字數 536 閱讀 8223

問題

有了委託為什麼還要有事件?

理論上,事件能完成的事情委託完全可以勝任,但是我們思考的這一方面是功能性,我們必須從他們各自的特點分析。

委託鏈的特點讓事件能夠被多個訂閱方訂閱,事件是帶上了event關鍵字的委託,在用reflector反編譯事件原始碼時,我

們看到事件成員的可訪問性被始終設定為private,其訂閱和移除事件靠方法來完成。

所以,他們的區別出現了:

委託可被任意呼叫者修改,甚至抹去所有的委託連,而對於事件,只能由訂閱者自己決定訂閱或者移除事件。

事件的密封性較好,他從本質層面上反映出了事件是屬於發布者的,訂閱者只能決定自己訂閱的事件,不能影響發布者

的所有訂閱物件。你為了反映這一事實,就不能使用委託來替代。

c 中的委託與事件

c 委託與事件 一 委託 關鍵字 delegate 委託是c 中的一種型別,它實際上是乙個對某個方法引用的類 委託是一種引用方法型別 一旦為委託分配了方法 委託將與該方法有相同完全的行為 委託具有引數 和返回值 delegate類能擁有乙個簽名 signature 只能持有與他簽名相匹配的方法的引用...

C 中的事件與委託

delegate委託 delegate是c 中的一種型別,它實際上是乙個能夠持有對某個方法的引用的類。與其它的類不同,delegate類能夠擁有乙個簽名 signature 並且它 只能持有與它的簽名相匹配的方法的引用 它所實現的功能與c c 中的函式指標十分相似。它允許你傳遞乙個類a的方法m給另乙...

C 中的委託與事件

寫這篇博文的目的是要記錄一下學習委託與事件的心的與 方便之後查閱 1 委託,是乙個函式的簽名,規定了函式的返回值與引數列表。類似於這類函式的乙個 簽名相同但是用途不同的函式s,要執行的時候就通過 來執行,使得函式執行得到諸多的方便。delegate相當於乙個類,具有類的一些特性。2 事件,事件就是應...