WhiteEngine-专注图形渲染与游戏引擎技术的网站

新浪微薄腾讯微薄

最新碎语:暂无碎语

您的位置:WhiteEngine-专注图形渲染与游戏引擎技术的网站 >C#与Lua> 委托和事件的本质区别和共同点

委托和事件的本质区别和共同点

(1)不想在声明delegate的类之外调用delegate,还有,除了声明delegate的类,其它类只能订阅(Subscribe,即+=)或取消订阅(Unsubscribe,即-=)时就给delegate加个event关键字。 

(2)event就是delegate的一种应用。加上event关键字的delegate能做的事,所谓纯的delegate也完全能做到。   

(3)event就是某个类发生一些事情时,通知对该事件感兴趣的客户的一种手段。   
   不加event也可以达到效果,从本质上来说是对delegate的一种限定。 加了event的delegate变量就当是它给外面的世界只显示了两个东西:+=、-=。   外面的世界既不能对他赋值(=操作),也不能调用它(myDelegate())。  

(4)事件模式要求所有的事件处理程序的返回类型都为void。必须这样做的原因是引发事件后可能要调用几个回调方法,因此不可能使每个回调方法都返回一个值。让返回类型为void就不会允许回调返回值。

---

转载请注明本文标题和链接:《委托和事件的本质区别和共同点

发表评论

路人甲 表情
看不清楚?点图切换 Ctrl+Enter快速提交