event事件

这篇博客详细解析了事件的五个组成部分:事件的拥有者、事件本身、事件的订阅者、事件处理器和订阅事件。事件的拥有者是事件发起者,事件订阅者则在事件发生时做出响应。文章通过实例解释了事件与事件处理器的区别,并介绍了事件的定义关键字event和委托的使用。同时,阐述了如何订阅和触发事件,强调了一个事件可以被多个对象订阅,实现多订阅者机制。
摘要由CSDN通过智能技术生成

事件的组成

事件的组成分为5个部分:

(1)事件的拥有者

(2)事件本身

(3)事件的订阅者

(4)事件处理器

(5)订阅事件

  • 事件的拥有者,或者说这件事的发起者,人开枪,人便是发起事件的对象,是事件的拥有者;
  • 事件的本身,开枪这件事便是事情的本身;
  • 事件的订阅者,也就是关注事件发生的对象,题中开枪后鸟都飞走了,鸟是听到枪响才飞走的,也就是说鸟是关注“开枪”这件事的对象;
  • 事件处理器,订阅者在关注到事件发生后,针对事件作出的反应。鸟在枪响后都被吓得飞走了,“飞走”便是它们针对“开枪”作出的事件处理。
  • 此外,事件的发生和事件处理都是一种动作,两者紧密相连却又互不相同,在处理事件的逻辑时一定要分清二者的界限,切不可混为一谈而导致逻辑混乱;
  • 订阅事件,这实际是一种关系,这个关系是联系拥有者和订阅者、事件和事件处理的一个“纽带”。就好比你家里做好了饭,家里人通知你饭做好了,你知道要开饭了于是赶紧回家,因为你是“关注”家里“开饭”这件事的,这便是订阅事件。

事件的使用

  • 定义事件的关键字是event,并且事件定义时需要搭配委托,语法**:修饰符 + event + 委托类型 + 名称**。

  • 委托类型
    在这里插入图片描述

  • 事件的触发只能在被声明该事件的类中进行,语法与类方法调用相同,所以事件是不能直接在类体之外触发的,若想在程序的其他地方触发方法,必须要用类方法在类体中封装事件。

  • 事件的订阅需要用到**“+=”**操作符,语法:实体类名称.事件 += 方法(事件处理器)。由于事件依托委托来声明,所以一个事件可以挂接多个事件处理器,也就是说可以被多个对象订阅

  • 回到题目,理清楚题目中的对象分别对应组成事件的哪个部分,人是事件的发起者、开枪是事件本身,鸟是事件的订阅者,它订阅了开枪这件事,而飞走是它对开枪这件事的处理。写成代码大概是下面这个样子:

//人

public 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值