1. 程式人生 > >.net 系列:事件和委托

.net 系列:事件和委托

註冊事件處理程序 條件 註冊事件 mil color ron eve .... tro

在.net 的世界裏,離不開委托和事件,其實理解透了後很簡單,總結了一下分為5步: 1)定義委托 public delegate void RevicedEventHandler(object sender,RevicedEventArgs e); RevicedEventArgs :自定義參數源 2) 定義事件 public event RevicedEventHandler RevicedEvent; 3) 定義觸發事件的函數 public virtual OnReviced(RevicedEventArgs e) { if(RevicedEvent!=null)
{ RevicedEvent(this,e); } } 4)定義事件處理函數 public void DoSome(object sender,RevicedEventArgs e) { ....... } 5) 註冊事件處理程序(將事件處理程序和事件關聯起來) this.RevicedEvent+=new RevicedEvent(DoSome); 說明:第1、2、3步是在發布者類定義,4、5步是在訂閱類定義 調用:滿足條件時調用,例如:person p =new person(); p.OnReviced(new RevicedEventArgs ());
其實:.net 後續又提供了泛型版本委托:public delegate void EventHandler<TEventArgs>(object sender, TEventArgs e); 所以,第2步的事件可以換成:public event EventHandler<RevicedEventArgs >RevicedEvent;此時第1步可以省略掉。

.net 系列:事件和委托