一直以来都是对于事件与委托比较混淆,而且不太会用。找了个时间,总结了一下,感觉清晰了很多。
先说一下个人理解的结论吧:
delegate是C#中的一种类型,它实际上是一个能够持有对某个方法的引用的类。
delegate声明的变量与delegate声明的事件,并没有本质的区别,事件是在delegate声明变量的基础上包装而成的,类似于变量与属性的关系(在IL代码中可以看到每一个delegate声明的事件都对应是私有的delegate声明的变量),提升了安全性。
首先了解一下, ILDasm中图标含义:
该图来自:http://www.cnblogs.com/zery/p/3366175.html
新建一个事件委托测试项目:EventDelegateTest
具体代码如下:
<span style="font-size:14px;">namespace EventDelegateTest
{
public class TestClass
{
public delegate int delegateAction();
public event delegateAction OnActionEvent;
public delegateAction daNew;
}
}</span>
编译代码后,使用 Visual Studio 2010自带的ILDASM.EXE:
原文:http://blog.csdn.net/jiankunking/article/details/45479105
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!