c#自定義事件
1、聲明一個委託類 public delegate SomethingChangedHandler(object sender,EventArgs e);
2、在你的類中聲明一個事件綁定到該委託 public event SomethingChangedHandler Changed;
3、在相應的方法中觸發此事件
public void ChangeSomething()
{
.................
Changed(this,new EventArgs); //觸發事件
}
4、在調用者訂閱事件
your class's instance.Changed+=new SomethingChangedHandler(你的方法名);
5、取消訂閱
訂閱該事件的對象.Changed-=new SomethingChangedHandler(你的方法名);
注意:
因爲c#中事件是通過委託實現的,而委託不能被繼承,所以導致事件只能在其定義的類中按
事件名(該事件委託的參數...) 的形式觸發。如果一個事件需要在派生類中被觸發,可以在基類中定義一個觸發該事件的方法 SendSomeEvent(),派生類中重寫該方法,並調用base.SendSomeEvent();