事件的標準模式

2022-02-24 22:35:19 字數 1485 閱讀 5206

.net 框架為事件程式設計定義了乙個標準模式。設定這個標準是為了讓.net框架和使用者**保持一致。system.eventargs是標準模式的核心,它是乙個沒有任何成員,用於傳遞事件引數的基類。

按照標準模式,我們對於上面的iphone6示例進行重寫。首先定義eventargs:

public

class

pricechangedeventargs : eventargs

}

然後為事件定義委託,必須滿足以下條件:

由於考慮到每個事件都要定義自己的委託很麻煩,.net 框架為我們預定義好乙個通用委託system.eventhandler:

public

delegate

void eventhandler(object source, teventargs e) where teventargs : eventargs;

如果不使用框架的eventhandler,我們需要自己定義乙個:

public

delegate

void pricechangedeventhandler (object sender, pricechangedeventargs e);

如果不需要引數,可以直接使用eventhandler(不需要)。有了eventhandler,我們就可以這樣定義示例中的事件:

public

class

iphone6

最後,事件標準模式還需要寫乙個受保護的虛方法來觸發事件,這個方法必須以on為字首,加上事件名(pricechanged),還要接受乙個eventargs引數,如下:

public

class

iphone6

//...

}

下面給出完整示例:

public

class

pricechangedeventargs : system.eventargs

}public

class

iphone6

public

decimal

price

set }

}class

program ;

//訂閱事件

iphone6.pricechanged +=iphone6_pricechanged;

//調整**(事件發生)

iphone6.price = 3999

; console.readkey();

}static

void iphone6_pricechanged(object

sender, pricechangedeventargs e)

}

view code

執行結果:

事件的標準模式

摘自僅供參考學習 net框架為事件程式設計定義了乙個標準模式,設定這個標準是為了讓.net框架和使用者 保持一致。system.eventargs是標準模式的核心,它是乙個沒有任何成員,用於傳遞事件引數的基類,首先定義eventargs 1 public class pricechangeevent...

C 事件標準步驟

using system 第一步 定義事件引數型別 internal class newmaileventargs eventargs public string from public string to public string subject internal class mailmanag...

標準事件模型和IE事件模型

在瀏覽器解析事件的時候,有兩種觸發方式,一種叫做bubbling 冒泡 另外一種叫做capturing 捕獲 這裡不做過多解釋 這裡分析三種繫結事件模式 1 traditional module 傳統方式的事件模型即直接在dom元素上繫結事件處理器,例如 window.onload function...