如何委派.调用工作



如果我在代码中创建一个委托,如:

delegate void dostuff (string o);

这生成了一个从System.MulticastDelegate派生的类,该类实现了三个方法——InvokeBeginInvokeEndInvoke

如果我查看Invoke的编译IL,我看到的只是:

.method public hidebysig newslot virtual 
        instance void  Invoke(string o) runtime managed
{
} // end of method dostuff::Invoke

该方法不包含任何代码。调用它确实有效——代理被调用,但我看不出它是如何做到的

使调用Invoke实际调用委托的伏都教来自哪里?

伏都教可以在签名的末尾找到:runtime managed。请注意,您定义的所有托管类和方法都将装饰为cli managed

runtime managed意味着运行时提供了方法的预优化实现。

相关内容

  • 没有找到相关文章

最新更新