31

可能重复:
C# 中的内联函数?

在 c++ 中,我们可以强制函数内联

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

4

1 回答 1

74

有点。确定打开不在您的直接控制之下。它从不在 IL 中内联 - 它仅由 JIT 完成。

您可以使用显式强制方法被内联MethodImplAttribute

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

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

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

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

于 2012-09-06T15:59:31.507 回答