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

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

相关内容

热门资讯

浙江必吃榜之早饭肉饼子配炒饭 肉饼子+ 炒饭听起来这是一份非常“硬核”且满足感极强的早餐!这个组合其实很经典。它有一种“家里的味道...
《白酒实验室》出圈!五粮液以科... 文|新消费财研社 当轻轻摇晃杯中的白酒,看那细密的酒花泛起、流转、消散,这个瞬间,曾映照过多少代人对...
三张名片传古韵 一杯清香拓新局... 3月26日至28日,第114届全国糖酒商品交易会在四川成都盛大启幕,作为国内食品行业顶级盛会,这里汇...
这些流量春鲜凭什么火 文/孙阳 往年春季,香椿、春笋、荠菜是绝对的主角,但今年走进餐厅、超市或打开各类生鲜App,你会发...