C#中delegate与event的区别

我们都知道delegate与C++中的函数指针类似,实现了将函数作为参数进行传递。而添加了event关键字后,编译器会自动为其添加add, remove两个方法,对应于+=和-=操作。

event更偏向于对外

event更多的体现出一种“对外暴露接口”的思想,在类的内部event与delegate是一样的,而在类的外部,对event只可以执行+=和-=操作,也就是类外部只能注册或注销事件,而不能执行赋值操作。因此,相比delegate,使用event的好处是可以避免外界某个类A对delegate的赋值,导致类B注册的事件被覆盖掉。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容