C# のインライン関数? 質問する

C# のインライン関数? 質問する

C# で「インライン関数」を実行するにはどうすればいいですか? 概念がよくわかりません。匿名メソッドのようなものですか? ラムダ関数のようなものですか?

:回答はほぼすべて、インライン関数、つまり「関数呼び出しサイトを呼び出し先の本体に置き換える手動またはコンパイラの最適化」です。匿名(ラムダ)関数、 見る@jalf の回答またはみんなが話題にしている「ラムダ」とは何でしょうか?

ベストアンサー1

最後に、.NET 4.5では、CLRを使用して1つのメソッドのインライン化をヒント/提案できるようになりました。MethodImplOptions.AggressiveInlining値です。Mono のトランクでも利用可能です (本日コミット済み)。

// The full attribute usage is in mscorlib.dll,
// so should not need to include extra references
using System.Runtime.CompilerServices; 

...

[MethodImpl(MethodImplOptions.AggressiveInlining)]
void MyMethod(...)

1 . 以前はここで「強制」が使用されていました。この用語を明確にしてみます。コメントやドキュメントにあるように、The method should be inlined if possible.特に Mono (オープン) を考慮すると、インライン化やより一般的なもの (仮想関数など) を考慮すると、mono 固有の技術的な制限がいくつかあります。全体として、はい、これはコンパイラへのヒントですが、それが求められていたものだと思います。

おすすめ記事