黑马程序员技术交流社区

标题: 怎么判断一个事件为空,没有引用任何方法 [打印本页]

作者: 靳石磊    时间: 2013-4-7 21:56
标题: 怎么判断一个事件为空,没有引用任何方法
RT,要自己用事件访问器保证事件中至少有一个方法,如果移除后事件为空,就不移除:
public static event IntHandler inthandler//事件访问器的使用
        {
            //添加访问器
            add
            {
                //当给事件添加委托或方法时就会调用此添加访问器
                if(count==3)
                    Console.WriteLine("已经给事件添加了三个方法!");
                count++;
            }
            //移除访问器
            remove
            {
                //怎么判断事件为空
            }
作者: 许庭洲    时间: 2013-4-8 06:24
//声明事件
public event EventHandler AEvent
{
        //添加访问器
        add
       {
              //注意,访问器中实际包含了一个名为value的隐含参数
              
//该参数的值即为客户程序调用+=时传递过来的delegate
              Console.WriteLine("AEvent add被调用,value的HashCode为:" + value.GetHashCode());
              if (value != null)
             {
                  //设置m_Handler域保存新的handler
                  m_Handler = value;
             }
       }
      //移除访问器
       remove
      {
             Console.WriteLine("AEvent remove被调用,value的HashCode为:" + value.GetHashCode());
             if (value == m_Handler)
             {
                  //设置m_Handler为null,该事件将不再被激发
                 m_Handler = null;
             }
       }
    }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2