C# 静态类扩展可以内联吗? 我有一种倾向(向C++天)向小方法添加内联提示,例如: [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void Add(this IProject @this, IComponent component) { @this.Components.Add(component); }

C# 静态类扩展可以内联吗? 我有一种倾向(向C++天)向小方法添加内联提示,例如: [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void Add(this IProject @this, IComponent component) { @this.Components.Add(component); },c#,.net,clr,jit,C#,.net,Clr,Jit,我想知道静态类扩展方法是否可以首先内联 静态方法可以内联。有关如何检查方法是否正在内联的信息。扩展方法与常规静态方法没有区别;在IL中,它们只是被一个System.Runtime.CompilerServices.ExtensionAttribute修饰过,所以JIT会对它们一视同仁。你真的需要这些微优化吗?它不再是C++天,你可以信任编译器。此外,内联提示通常应该放在您认为编译器不会内联的较大方法上。但是结果可能是在纳秒之内。首先摆脱这种习惯不是更好吗?即使我们不同意它的用例,这个问题仍然是完

我想知道静态类扩展方法是否可以首先内联

静态方法可以内联。有关如何检查方法是否正在内联的信息。扩展方法与常规静态方法没有区别;在IL中,它们只是被一个
System.Runtime.CompilerServices.ExtensionAttribute
修饰过,所以JIT会对它们一视同仁。

你真的需要这些微优化吗?它不再是C++天,你可以信任编译器。此外,内联提示通常应该放在您认为编译器不会内联的较大方法上。但是结果可能是在纳秒之内。首先摆脱这种习惯不是更好吗?即使我们不同意它的用例,这个问题仍然是完全有效的。可能不是。但是属性在那里,功能在那里。这是一个合理的问题。为什么静态方法会被排除在内联之外?