.net 框架為事件程式設計定義了乙個標準模式。設定這個標準是為了讓.net框架和使用者**保持一致。system.eventargs是標準模式的核心,它是乙個沒有任何成員,用於傳遞事件引數的基類。
按照標準模式,我們對於上面的iphone6示例進行重寫。首先定義eventargs:
public然後為事件定義委託,必須滿足以下條件:class
pricechangedeventargs : eventargs
}
由於考慮到每個事件都要定義自己的委託很麻煩,.net 框架為我們預定義好乙個通用委託system.eventhandler:
public如果不使用框架的eventhandler,我們需要自己定義乙個:delegate
void eventhandler(object source, teventargs e) where teventargs : eventargs;
public如果不需要引數,可以直接使用eventhandler(不需要)。有了eventhandler,我們就可以這樣定義示例中的事件:delegate
void pricechangedeventhandler (object sender, pricechangedeventargs e);
public最後,事件標準模式還需要寫乙個受保護的虛方法來觸發事件,這個方法必須以on為字首,加上事件名(pricechanged),還要接受乙個eventargs引數,如下:class
iphone6
public下面給出完整示例:class
iphone6
//...
}
publicview codeclass
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)
}
執行結果:
事件的標準模式
摘自僅供參考學習 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...