码迷,mamicode.com
首页 > Windows程序 > 详细

[C#参考]事件和委托的关系

时间:2015-04-16 23:33:11      阅读:465      评论:0      收藏:0      [点我收藏+]

标签:

前面说了委托,接下来就要说一说事件了,同时最后再说一下委托和事件的区别。

事件和委托很相似,事件就好像是被简化的针对特殊用途的委托。看下面的图:

技术分享

结合前面说的委托的知识,事件的组件应该是这个样子的:

技术分享

看到发布者必须有触发事件的代码,也就是必须为事件的调用留有接口,不能直接调用事件(不要觉得事件是委托类型的)。这里要强调的是事件是成员,是发布者的一个成员,它不是类型,它的类型是委托类型的

虽然事件是委托类型的,但是事件对委托做了一次封装,并且事件封装的委托是private的,所以是不能从发布者外部直接调用使用的,必须通过接口调用。

技术分享

事件提供了对它的私有控制委托的结构化访问。与委托中的许多其他操作不一样,对于事件只可以添加、删除或者调用事件处理程序。

再看下面这幅图:

技术分享

从这幅图中也能看到事件是发布者类的成员,它提供了对自己内部私有控制的委托的结构访问。

 http://www.cnblogs.com/chengxingliang/archive/2013/05/21/3051912.html

http://www.blogjava.net/hongzionline/archive/2008/07/28/145050.html

http://www.360doc.com/content/11/0719/10/654841_134444949.shtml

http://blog.csdn.net/chopper7278/article/details/3145000

http://www.cnblogs.com/kklldog/archive/2012/01/17/2324228.html

http://www.tracefact.net/CSharp-Programming/Delegates-and-Events-in-CSharp.aspx

 

[C#参考]事件和委托的关系

标签:

原文地址:http://www.cnblogs.com/stemon/p/4433297.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!