C# 中的delegate 和 event的区别

你不想在声明delegate的类之外调用delegate,还有,除了声明delegate的类,其它类只能订阅(Subscribe,即+=)或取消订阅(Unsubscribe,即-=)时就给delegate加个event关键字。  
   
  event和delegate谈不上什么区别不区别的。event就是delegate的一种应用。加上event关键字的delegate能做的事,所谓纯的delegate也完全能做到。  
   
  event就是某个类发生一些事情时,通知对该事件感兴趣的客户的一种手段。  
  不加event也可以达到效果。  
   
  加了event的delegate变量就当是它给外面的世界只显示了两个东西:+=、-=。  
  外面的世界既不能对他赋值(=操作),也不能调用它(myDelegate())。  
   
  还有一点.net   framework推荐使用了event关键字的delegate的原型最好类似delegate   void   MyEventHandler(object   sender,   MyEventHandler   e);这个样子。  
   
  声明了event   delegate的类变得更加有个性,他可以对其他人说:我自己有什么事儿的时候再告诉你们,我告诉你们之前你们别烦我,也不用告诉我该做什么。发生事情的时候我自己怎么处理是我自己的事,关你们屁事,事情发生了,我通知你们,你们怎么做是你们的事,做不做、怎么做也不管我的事

By Lu Jun

80后男,就职于软件行业。习于F*** GFW。人生48%时间陪同电子设备和互联网,美剧迷,高清视频狂热者,游戏菜鸟,长期谷粉,临时果粉,略知摄影。

Leave a comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.