zoukankan      html  css  js  c++  java
  • 事件与委托

    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方法。第一次写不太会,见解。

  • 相关阅读:
    hdu1003 最大子串和
    cf339d Xenia and Bit Operations
    A + B Problem II
    中国近代史纲要----王洪兵--2016年春季学期----中国海洋大学
    CodeForces 35D Animals
    CodeForces 558D
    Vanya and Brackets
    spfa
    hdu 1217 Arbitrage
    CodeForces 1A Theatre Square
  • 原文地址:https://www.cnblogs.com/xianyuxihuamao/p/7908604.html
Copyright © 2011-2022 走看看