關於事件與委託的一些對比

2021-04-02 23:54:47 字數 1054 閱讀 7709

using system;

private static void goodbye(string str)

static void main(string args)}}

我的理解就是,delegate就是乙個函式的指標,用他宣告的變數實質上就是乙個函式,這就要求繫結的時候函式的返回值和引數列表必須符合delegate宣告時候的要求。

這時候,我來比較一下event

this.load += new system.eventhandler(this.page_load);

很顯然,這裡的this.load是乙個事件,也是乙個delegate,而這裡的system.eventhandler()也是乙個delegate,而且,他的返回值與引數列表和this.load是相同的。這時候繫結的page_load,是system.eventhandler繫結的乙個具體的函式,跟前兩者的返回值和引數列表都相同。當this.load事件發生的時候,觸發了新new的system.eventhandler,從而執行了page_load.

找到了乙個例子,事件處理的

using system;

public class eventtest

private event myeventhandler myevent;

public eventtest()

public void raiseevent()

public static void main()

}//在這裡myevent是乙個事件,也是乙個delegate,給他加了乙個處理的的delegate,也就是乙個eventhandler,就是給這個事件新增的處理函式。在建構函式裡面,把myeventfunc和handler進行繫結。那麼,如果觸發了事件,就執行繫結的函式myeventfunc.

ivony... 發表於 2005-03-03 10:47 am    

event就是delegate,只不過是delegate的縮減功能版,或者說受限版。。。。event去掉了delegate的直接賦值功能,其他與delegate一樣。 

也就是說event就是乙個不能使用=運算子的delegate。 

js 事件委託的一些想法

原生 js 的事件委託可以利用事件冒泡來實現 核心思想是利用 target target 是處於事件目標階段的元素 currenttarget 是註冊了事件的元素 jquery 的 on 方法可以方便的實現事件委託 下面是相關 和小結 個人筆記,較雜亂 add 原生 js 的事件委託實現 windo...

關於委託的一些知識

c 語言規範中提到 1 委託是引用乙個或多個方法的資料結構。對於例項方法,委託還可引用例項方法對應的物件例項。2 在 c 或 c 中與委託最接近的是函式指標,但函式指標只能引用靜態函式,而委託則既可以引用靜態方法,也可以引用例項方法。在後一種情況中,委託不僅儲存了乙個對該方法入口點的引用,還儲存了乙...

每日心得 關於C 中委託與事件的一些認識 一

大家都知道在我們一開始學習程式語言中的函式時,我們所傳入的引數統統為資料型別。所以當我們學習委託的時候難免會有些疑惑,為什麼函式傳入了乙個方法?為什麼不在內部呼叫方法?或者為什麼能夠傳入方法?現在根據我所學的內容來和大家一起解決這些問題。人是經驗型的動物,以往的知識難免會對新所學習的知識造成影響,而...