事件与委托
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了事件与委托相关的知识,希望对你有一定的参考价值。
记得当初刚学习.net的时候,觉得委托这块好难,好长一段时间都是会用非懂的状态,现在也用这么长时间了,就想着回顾一下基础,加深对于这块的了解。
委托,简单点说,就是可以把函数做为参数供其他模块调用,类似于C++中的函数指针;
public delegate void MyDelegate();
委托简单就是在一个函数声明之前添加一个delegate关键字,这样便声明了一个委托类型,即一种特殊的类。该类是不可以继承的,通过ildasm可以很明白的看到这一点。并提供了两种调用方式,同步调用和异步调用。
而事件,则是在委托基础上加了一些限制。一种特殊的委托对象。其声明可以是:
private static event MyDelegate Myevent;
其限制在于,事件的调用只能在声明事件的对象内部进行调用,外部只能对事件的委托链进行添加或删除方法,在声明对象的内部的使用与普通的委托对象的使用无异。
.net中内置的委托主要有Func和Action,一个需要返回值,而另外一个不需要。一般来说,.net提供的这些委托类型已满足要求,不满足时,可以自定义。
以上是关于事件与委托的主要内容,如果未能解决你的问题,请参考以下文章