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();