4.C#委托和事件

C#中的委托是一种观察者模式的简便实现方式,可以避免大量的编码

.net内置有可以符合大部分需求的委托Func和Action
Func有一个TResult返回值
而Action没有返回值

自定义委托使用delegate关键字
委托可以被一些方法订阅,订阅了委托的方法称为订阅者
使用+=操作符订阅,使用-=操作符取消订阅

事件是委托的一种安全实现
一般使用内置的EventHandler事件(无返回值)
自定义事件使用event关键字
它和委托的区别有
1.事件只能使用+=与-=操作符,不能使用=操作符
2.事件只能由包容类调用,其它类只能添加订阅方法或取消订阅

注意事项

1.-=操作符并不是直接取消订阅者,而是读取委托链,然后创建一个新的实例,新实例在委托链的基础上不包含所取消的订阅者

2.在使用委托时,触发前需要检查委托值是否为null;事件则可以在声明时采用一个替代方案(一般是一个空委托)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值