可以内联静态类扩展吗?

Mei*_*hes 4 .net c# clr jit

我倾向于(回到c ++天)向小方法添加内联提示,例如:

[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static void Add(this IProject @this, IComponent component)
{
    @this.Components.Add(component);
}
Run Code Online (Sandbox Code Playgroud)

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

Eri*_*rik 6

静态方法可以内联.有关如何检查方法是否内联的信息,请参见此处.扩展方法与普通静态方法没有区别; 在IL中,它们只是用a来装饰System.Runtime.CompilerServices.ExtensionAttribute,因此JIT会对它们进行相同的处理.