我们都知道delegate与C++中的函数指针类似,实现了将函数作为参数进行传递。而添加了event关键字后,编译器会自动为其添加add, remove两个方法,对应于+=和-=操作。
event更偏向于对外
event更多的体现出一种“对外暴露接口”的思想,在类的内部event与delegate是一样的,而在类的外部,对event只可以执行+=和-=操作,也就是类外部只能注册或注销事件,而不能执行赋值操作。因此,相比delegate,使用event的好处是可以避免外界某个类A对delegate的赋值,导致类B注册的事件被覆盖掉。