如何在C#中强制内联函数?

时间:2012-09-06 15:56:21

标签: c# .net

  

可能重复:
  Inline functions in C#?

在c ++中我们可以强制function inlining

这也可以在c#中使用吗?有时,当方法很小时,它会自动内联。但是有可能强制在c#/ .Net中内联函数吗?

1 个答案:

答案 0 :(得分:59)

排序。您无法直接控制 on 。它从未在IL中内联 - 它只由JIT完成。

您可以使用MethodImplAttribute明确强制方法内联

[MethodImpl(MethodImplOptions.NoInlining)]
public void Foo() { ... }

从.NET 4.5开始,您还可以进行“请求”内联:

[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void Foo() { ... }

...但你不能强迫它。 (在.NET 4.5之前,该枚举值不存在。例如,请参阅.NET 4 documentation。)