事件就是一个阉割版的委托。
事件就是一个外部不能访问,并且只能使用“+=、-=”号添加委托的类成员。
为什么事件要做成外部不能访问?
如果事件可以被外部访问,那么外部就可以绕过开发者自己定义的接口,直接访问并调用委托,违反了面向对象封装的思想。
为什么事件要只能使用“-=、+=”?
因为如果使用者在某一地方使用了“=”号给事件赋值,那么他会惊奇的发现之前添加的事件都被清空了....
事件的本质,就是1个私有委托,和两个add、reduce函数(类似属性,实现+=、-=)
事件就是一个阉割版的委托。
转载于:https://www.cnblogs.com/qiuyeyaozhuai/archive/2012/10/10/2719076.html