用 C# 中的 delegate 关键字定义了一个委托类型 MyDelegate;使用 new 操作符来构造一个 MyDelegate 委托的实例 myDelegate,通过构造函数创建的委托实例 myDelegate 此时所引用的方法是 myMethod1,之后我们通过方法组转换为 myDelegate 绑定另一个对应的方法 myMethod2;最后,用调用方法的语法来调用回调函数。看上去一切都十分简单,但实际情况是这样吗?事实上编译器和 Mono 运行时在幕后做了大量的工作来隐藏委托机制实现的复杂性。那么本节就要来揭开委托到底是如何实现的这个谜题。