[导入][MSIL] 30. Delegate

委托(delegate)是一种特殊的引用类型,专门设计用来描述类型安全的托管方法指针。所有的委托必须继承自 MulticastDelegate, 它们没有字段(fields)、事件(events)和属性(properties)成员,只能有几个特殊的实例方法,这些方法由 CLR 来实现其内部指令,我们只提供方法声明,并添加 runtime managed 指示标记。其中有两个强制方法,分别是 .ctor 和 Invoke。除 .ctor 外,其他方法必须是虚方法。

我们看一个简单的 C# 委托所对应的 IL 代码。

C#
delegate void MyHandler(string s, int x);

MSIL
.class private auto ansi sealed MyHandler
  extends [mscorlib]System.MulticastDelegate

文章来源:http://www.rainsts.net/article.asp?id=607
posted @ 2007-10-16 12:38  橡树木棉狗  阅读(117)  评论(0编辑  收藏  举报