想象一下,你有一个A类,其代码以方法M的形式运行。有一个B类需要发信号通知A是时候运行M了。
通常你会发射一个事件。但是,有几种方法可以做到这一点。触发事件,调用Action或将M调用为公共方法。即:
b.OnMEvent(this, null);
b.MAction();
a.M();
是否有可能在运行时内联这些(或其他)方法调用其他calss方法?
是否可以在.NET 4.5中实现积极的内联?
答案 0 :(得分:2)
当前版本的.NET JIT没有内联委托调用。事件使用委托作为调用机制,因此事件调用也不会内联。
内联委托很难,因为目标在编译时不一定是已知的。有缓解技术,但目前的JIT没有实现任何技术。
但在大多数情况下,委托调用的速度已经足够快了。