十六、事件 event
admin
2024-03-25 23:18:24

文章目录

  • 1、事件是什么
  • 2、事件的使用
  • 3、为什么要事件

1、事件是什么

点击访问官网 事件

  • 事件是基于委托的存在
  • 事件是委托的安全包裹,让委托的使用更安全
  • 事件是一种特殊的变量类型
  • 类 或对象可以通过事件向其他类或对象通知发生的相关事情。 发送(或引发)事件的类称为“发布者”,接收(或处理)事件的类称为“订阅者”
  • 事件具有以下属性:
    • 发行者确定何时引发事件;订户确定对事件作出何种响应
    • 一个事件可以有多个订户。 订户可以处理来自多个发行者的多个事件
    • 没有订户的事件永远也不会引发
    • 事件通常用于表示用户操作,例如单击按钮或图形用户界面中的菜单选项
    • 当事件具有多个订户时,引发该事件时会同步调用事件处理程序。 若要异步调用事件,请参阅 “使用异步方式调用同步方法”
    • 在 .NET 类库中,事件基于 EventHandler 委托和 EventArgs 基类

2、事件的使用

  • 关键字:event
  • 语法:访问修饰符 event 委托类型 事件名;
  • 事件的使用
    • 作为类的成员变量
    • 委托怎么用,事件就怎么用
  • 事件相对于委托的区别
    • 不能在自身类外部赋值
    • 不能在自身类外部调用
      • 虽然不能在自身类外部赋值调用,但是可以使用 +=-= 进行加减
    • 事件不能当临时变量在方法内使用
  • 注意:事件只能作为成员存在于类、接口、结构体内
class Test
{// 委托public Action MyFun;// 事件public event Action MyEvent;public Test() {// 两者赋值一致MyFun = null;MyEvent = null;MyFun = TestFun;MyEvent = TestFun;// 两者增减一致MyFun += TestFun;MyEvent += TestFun;MyFun -= TestFun;MyEvent -= TestFun;// 调用一致MyFun.Invoke();MyEvent.Invoke();MyFun();MyEvent();}public void TestFun(){Console.WriteLine("666");}
}

3、为什么要事件

  • 防止外部随意置空委托
  • 防止外部随意调用委托
  • 对委托进行一次封装,使其更安全

相关内容

热门资讯

刘集黄酒,正在改写南阳黄酒产业... 刘集黄酒,正在改写南阳黄酒产业新格局 长期以来,南阳黄酒坐拥千年酿造文脉、成熟产区根基,却长期深陷发...
原创 国... 标题:国宴白菜清汤寡水?实则经历了无数道工序,每一道都很严谨 在探讨国宴上的白菜清汤时,我们可能会...
禾利生湿面批发的湿面,其营养成... 在当今的湿面市场中,禾利生湿面批发的湿面凭借其独特的优势和特点,吸引了众多消费者的关注。接下来,我们...
原创 5... 前段时间,社交平台一条吐槽帖直接刷屏,无数网友纷纷抱团感慨,现如今连麻辣烫都不敢随便吃了。 事情起因...