C# 跨程序集内联

C# 跨程序集内联,c#,inline,C#,Inline,假设我们有一个具有简单属性的类: public string MyProperty { get { return _myProperty; } set { _myProperty = value; } } 此属性非常适合直接使用backing字段进行内联。但是如果这是在另一个程序集中完成的,然后setter/getter被更改,那么该行为将不会转发给调用程序集。在另一方面,如果内联没有执行,我填补了我们缺乏很多 也许内联是在CLR级别执行的?另外,您是否有任何解释内联的链接?文

假设我们有一个具有简单属性的类:

public string MyProperty
{
    get { return _myProperty; }
    set { _myProperty = value; }
}
此属性非常适合直接使用backing字段进行内联。但是如果这是在另一个程序集中完成的,然后setter/getter被更改,那么该行为将不会转发给调用程序集。在另一方面,如果内联没有执行,我填补了我们缺乏很多


也许内联是在CLR级别执行的?另外,您是否有任何解释内联的链接?文中介绍了如何选择衬板的方法、算法及其它优化方法。。。到目前为止,我在google上还没有找到任何真正有用的文档。

NET运行时编译模型的优点之一是能够跨程序集内联。这就是为什么这种内联由JIT编译器而不是C编译器处理的原因之一。@mikez您有什么链接解释它在JIT级别的工作方式吗?AFAIK未记录如何选择内联方法的规则。有几个.NETFramework开发人员的博客文章示例,在不同的时间描述了一些细节,但这些内容可能会发生变化。我将注意到,目前x64抖动与x86抖动完全不同。另外,Microsoft正在为下一个主要框架版本开发新版本的JIT。@mikez考虑到您的所有响应和链接,内联实际上是在JIT级别进行的。这只发生在这里,你有相关的文件吗?