事件与委托

  记得当初刚学习.net的时候,觉得委托这块好难,好长一段时间都是会用非懂的状态,现在也用这么长时间了,就想着回顾一下基础,加深对于这块的了解。

  委托,简单点说,就是可以把函数做为参数供其他模块调用,类似于C++中的函数指针;

  public delegate void MyDelegate();

  委托简单就是在一个函数声明之前添加一个delegate关键字,这样便声明了一个委托类型,即一种特殊的类。该类是不可以继承的,通过ildasm可以很明白的看到这一点。并提供了两种调用方式,同步调用和异步调用。

 

 

 

 

  而事件,则是在委托基础上加了一些限制。一种特殊的委托对象。其声明可以是:

        private static event MyDelegate Myevent;

  其限制在于,事件的调用只能在声明事件的对象内部进行调用,外部只能对事件的委托链进行添加或删除方法,在声明对象的内部的使用与普通的委托对象的使用无异。

  .net中内置的委托主要有Func和Action,一个需要返回值,而另外一个不需要。一般来说,.net提供的这些委托类型已满足要求,不满足时,可以自定义。

 

posted @ 2016-03-19 17:25  magic249  阅读(125)  评论(0编辑  收藏  举报