1.事件与委托的紧密联系
class A { //声明委托类型 public delegate void ConfigHandler(int index,string path); //声明事件 public event ConfigHandler ConfigEvent; }
如上,我声明了一个委托类型,此类型有两个参数,最后声明一个ConfigHandler类型的事件,虽然定义好委托与事件,如何执行事件,
我们可以给执行事件封装一个方法,如下代码:到时只需要使用MyConfigEvent方法就能执行事件,并通知已经订阅该事件的对象。
private void MyConfigEvent(int index,string path) { if (ConfigEvent != null) { ConfigEvent(index, path); } }
2.订阅事件
A a=new A() a.ConfigEvent+=new ConfigHandler(aa)
//a.ConfigEvent-=new ConfigHandler(aa)//取消事件
订阅事件的方法要和定义好的委托类型一致,
public void aa(int index,string path)
{
MessageBox.Show("事件通知触发"); }
以后每次MyConfigEvent方法执行一次就要触发一次事件,并且通知aa方法。第一次写不太会,见解。