如果有一个属性(任何属性),可能是有原因的,所以理论上,它不应该内联,但这只是一个猜测。
如果我想建议我不想要内联,我必须使用[MethodImpl(MethodImplOptions.NoInlining)]
吗?
一般属性?确定;然而,编译器和JIT都可以自由地特别关注System.Runtime.CompilerServices
中的任何内容,并应用特殊规则(好吧,技术上它们可以特别关注任何内容,但是相关类型倾向于;反例是[Obsolete]
和[Serializable]
,它们不在该名称空间中,但具有特殊规则)。[MethodImpl(...)]
是具有JIT特殊规则的属性之一。
但是,一般意义上的属性;没有真正的区别。
是的,[MethodImpl(MethodImplOptions.NoInlining)]
请求JIT不应该内联这个。