事件

发布器类:

定义一个委托,定义一个基于委托的事件,定义事件触发

订阅器类:

定义方法

 

其他类:

new发布器类,new 订阅器类,然后把方法绑定到事件,触发。

public class Test
{
    // ….
  public delegate void TestHandler();//无参数,无返回委托
  public event TestHandler TestEvent;//事件
  public void OnTestHandler()//调用
  {
    if(TestEvent != null) //不等于null 说明该事件已经注册有函数
    {
      this.TestEvent();
    }
  }
}

class Program
{
  static void Main(string[] args)
  {
    Test model = new Test();//实列
    model.TestEvent += model_TestEvent;//为model 注册TestEvent事件的执行方法   这里可以绑定多个方法,然后在触发时多个方法按顺序执行

   //model.TestEvent += model_TestEvent1
    model.OnTestHandler();//调用引发事件
  }
  static void model_TestEvent()//事件执行方法,该方法样式要与委托一致(参数,返回值)  该方法可以放到单独的发布器类中
  {
    Console.WriteLine("这是最简单的事件");
  }
}

posted @ 2020-07-21 15:31  奔腾的岩浆  阅读(82)  评论(1编辑  收藏  举报