通过Demo来细看C#事件的内在机制
2010-09-30 22:44:34 来源:WEB开发网核心提示: 如下图所示:那我们可能还会想:那根据这委托生成的类,我们在Main函数中实注册事件的时候是怎样调用ProcessEventHandler委托的呢?如果要分析的话,通过Demo来细看C#事件的内在机制(4),我们可以根据IL代码来看到基本的过程:查看原图(大图)上面这幅图IL图只说明了我们把Cus
如下图所示:
那我们可能还会想:那根据这委托生成的类,我们在Main函数中实注册事件的时候是怎样调用ProcessEventHandler委托的呢?如果要分析的话,我们可以根据IL代码来看到基本的过程:
查看原图(大图)
上面这幅图IL图只说明了我们把CustomProcess加到委托链中,那么当我们调用委托时候,它是根据什么去调用委托链中的方法呢?下面我们看一下CharlesLog中的ProcessHandler()方法。
查看原图(大图)
OK,上面这两幅图就是前面代码通过C#编译器产生的IL代码样例,现在我们可以清楚的理解最前面说的:
1、 C#事件是特殊的委托
2、 C#中使用委托模型来实现事件的。
3、 C#中的委托是一个引用类型,可以把它看成一个特殊的”类”。
OK,本文就写到这里。主要是通过Demo去了解了C#事件背后发生的事情。
文章出处:http://charles2008.cnblogs.com/
更多精彩
赞助商链接