如果我在我的代码中创建一个委托:
delegate void dostuff (string o);
这会生成一个派生自System.MulticastDelegate的类,它实现了三种方法 – Invoke,BeginInvoke和EndInvoke.
如果我查看编译的IL for Invoke,我看到的是:
.method public hidebysig newslot virtual instance void Invoke(string o) runtime managed { } // end of method dostuff::Invoke
该方法不包含代码.调用它的工作 – 代理被调用,但我看不到它是如何做到的.
调用Invoke的voodoo实际上是否来电代表来自哪里?