C# Event 事件

参考:https://www.runoob.com/csharp/csharp-event.html

1、    理解:
(1)    事件就是带有event关键词的委托实例(事件是委托的一种应用方式)。
(2)    事件是类中的一种成员类型,类似类中的属性、方法。也就是事件只能在类中定义。
(3)    事件应用:
         1. 一个用户操作,如按键、点击、鼠标移动等等。
         2. 应用程序需要在事件发生时响应事件。例如,中断。
         3. C# 中使用事件机制实现线程间的通信,如invoke。
(4)   加深理解参考:事件与委托的区别

2、    事件使用:
(1)    事件在类中定义。
(2)    事件就是委托实例,可以用来绑定处理程序。
(3)    事件使用 发布-订阅(publisher-subscriber) 模型。
         1. 包含事件的类用于发布事件。这被称为 发布器(publisher) 类。
         2. 其它接收该事件的类(包含用来绑定事件的处理程序)被称为 订阅器(subscriber) 类。
(4)    发布器是一个包含委托和事件的对象。发布器调用这个事件,来通知订阅器。
(5)    订阅器是提供事件处理程序的对象。在发布器类中,事件绑定订阅器类中的方法(事件处理程序)并调用。

3、    声明事件Event
(1)    首先声明该事件的委托类型。例如:

public delegate void BoilerLogHandler(string status);

(2)    然后,声明事件本身,使用 event 关键字(和委托对象的声明一样,只是多了event关键字):

// 基于上面的委托定义事件
public event BoilerLogHandler BoilerEventLog;

(3)    上面的代码定义了一个名为 BoilerLogHandler 的委托类型和一个名为 BoilerEventLog 的事件。    

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值