委托与事件的区别
Posted zjka
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了委托与事件的区别相关的知识,希望对你有一定的参考价值。
截止到目前为止,我很少使用事件,经常使用委托,但是我并不清楚事件存在的原因,或者说,委托和事件到底有什么区别?
我在网上搜的一般情况下都会写委托是一个类,事件是委托的对象,但是用的时候会发现,
执行出来完全一模一样,什么调用Invoke,什么Remove和-=,如果这就是区别,那事件存在的意义在哪里?
马克思说过:存在即合理
后来我又搜了一些博客,看了一下终于让我找到了我认为最本质的区
区别主要在外部触发,事件是不允许的,具体看下边例子:
事件ActEvent在外部只能出现在+=或者-=的左边,不能=或者调用执行,所以,event关键字有助于提高类的封装性,物理隔绝代码耦合,迫使类设计更追求高内聚。
以上是关于委托与事件的区别的主要内容,如果未能解决你的问题,请参考以下文章
通过IL分析C#中的委托事件FuncActionPredicate之间的区别与联系