A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

RT,要自己用事件访问器保证事件中至少有一个方法,如果移除后事件为空,就不移除:
public static event IntHandler inthandler//事件访问器的使用
        {
            //添加访问器
            add
            {
                //当给事件添加委托或方法时就会调用此添加访问器
                if(count==3)
                    Console.WriteLine("已经给事件添加了三个方法!");
                count++;
            }
            //移除访问器
            remove
            {
                //怎么判断事件为空
            }

1 个回复

倒序浏览
//声明事件
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;
             }
       }
    }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马