C# 事件到底是什么

本文深入解析事件机制的核心概念,强调事件作为私有委托的重要性及其封装思想,解释为何事件不能被外部访问及使用“+=、-=”的原因,通过实例阐述事件本质与面向对象设计原则。

事件就是一个阉割版的委托。
 


  事件就是一个外部不能访问,并且只能使用“+=、-=”号添加委托的类成员。

  为什么事件要做成外部不能访问?
  
  如果事件可以被外部访问,那么外部就可以绕过开发者自己定义的接口,直接访问并调用委托,违反了面向对象封装的思想。

  为什么事件要只能使用“-=、+=”?
 
  因为如果使用者在某一地方使用了“=”号给事件赋值,那么他会惊奇的发现之前添加的事件都被清空了....


  事件的本质,就是1个私有委托,和两个add、reduce函数(类似属性,实现+=、-=)

转载于:https://www.cnblogs.com/qiuyeyaozhuai/archive/2012/10/10/2719076.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值