C

雅轩聊科技 2024-09-06 01:39:00

哈喽,你好啊,我是雷工!

01 事件概念

事件是对象对外界信息的刺激产生的一种消息响应机制。

本质:事件是委托的进一步包装。

事件的参与者:

①:发送者(sender):即对象本身,当是本身信息状态变化的时候,触发一个事件,并通知所有的接受者接收。

②:接受者(Receiver):即事件的处理者,在事件发送者触发后,会自动执行的代码。

02 事件和委托对比

①事件无法直接赋值,(例事件=null,会出现编译错误)委托可以直接赋值(委托=null);

②event对象没有invoke()方法,只能通过使用括号的方式来运行。

03 委托和事件的选择

①正常解决问题,你使用委托和事件没有什么本质区别,所以建议是使用委托。

②若做控件二次开发,扩展控件的事件的时候,就必须使用事件。

04 委托与事件的区别

4.1、目的不同

①委托是一种类型安全的函数指针,它定义了一个方法的类型,允许将方法作为参数传递或赋值给变量。

②事件是委托的一种特殊用途,主要用于实现发布/订阅模式,用于在类或对象之间传递消息。

4.2、使用方式

①委托可以直接被实例化、赋值,并像调用普通方法一样调用。

②事件只能通过+=和-=操作符来订阅或取消订阅,不能直接调用。

4.3、封装程度

①委托的封装程度较低,可以很容易地访问和操作。

②事件的封装程度较高,隐藏了触发事件的细节,只提供了订阅和取消订阅的接口。

4.4、适用场景

①委托适用于需要传递方法作为参数或返回值的 场景,或者需要动态调用方法的场景。

②事件适用于需要实现发布/订阅模式的场景,特别是当需要在类或对象之间传递消息时。

0 阅读:0

雅轩聊科技

简介:感谢大家的关注