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

  }

}

相关文章

项目中经常遇到CSV文件的读写需求,其中的难点主要是CSV文件...
简介 本文的初衷是希望帮助那些有其它平台视觉算法开发经验的...
这篇文章主要简单记录一下C#项目的dll文件管理方法,以便后期...
在C#中的使用JSON序列化及反序列化时,推荐使用Json.NET——...
事件总线是对发布-订阅模式的一种实现,是一种集中式事件处理...
通用翻译API的HTTPS 地址为https://fanyi-api.baidu.com/api...