十六、事件 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、为什么要事件

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

相关内容

热门资讯

把音乐厅搬进喀斯特溶洞是什么体...   近日,一场融合多元艺术形式的洞穴音乐会在贵州省修文县举行,五百余名观众在喀斯特溶洞之中,感受了一...
教师专享福利!北京这些景区免票... 新京报讯 据首都教育消息,教师节将至,北京多家景区为老师们准备了专属免票福利!这份优惠合集已整理好,...
黑茶,喝的是一种境界与健康 在专门用来喝黑茶的茶具“飘逸杯”里,黑茶茶汤看起来并不像“黑茶”这个名字那样黑黢黢的一团。 玻璃器皿...
上海旅游节大巡游花车阵容抢先看... 2026上海旅游节大巡游9月12日外滩启幕,21辆全新主题花车携手21支境内外表演方队联袂登场,邀你...
原创 8... 上周门诊来了位 62 岁的张阿姨,得糖尿病快五年了,平时管嘴特别严,糖果、点心、甜饮料一概不碰,连水...