C#委托与事件
public delegate void XXXEventHandler(); //定义XXX方法的委托
public class A //发布者类
{
public event XXXEventHandler XXXEvent; //定义XXX方法的事件
public void XXX() //当A调用XXX方法时会触发订阅的事件
{
if(XXXEvent != null) XXXEvent(); //调用事件
}
}
public class B //订阅者类
{
A a;
public B(A a)
{
this.a = a;
a.XXXEvent += new XXXEventHandler(bbbEvent); //订阅事件
}
void bbbEvent() //订阅到事件的方法
{
...;
}
}
class Programe
{
static void Main(string[] args)
{
A a = new A(); //创建对象a
B b = new B(a);//创建对象b,同时将B的bbbEvent方法绑定到A的XXXEvent事件上
a.XXX(); //对象a调用方法XXX时,会触发绑定在XXXEvent事件上的方法:bbbEvent
}
}