[解決済み】C#のインライン関数?
2022-03-30 16:04:38
質問
C#で"inline functions"はどうやるんですか?コンセプトがよくわからないのですが。無名メソッドのようなものですか?ラムダ関数のようなものですか?
注 : 回答は、ほぼすべて「能力」を扱っています。 インライン関数 つまり、関数呼び出しの場所を呼び出し側のボディに置き換える、手動またはコンパイラによる最適化です。 匿名(ラムダ)関数 をご覧ください。 jalfの回答 または みんなが言っている「ラムダ」とは何ですか? .
どのように解決するのか?
.NET 4.5でようやく、CLRでヒント/サジェストができるようになりました。
1
メソッドのインライン化には
MethodImplOptions.AggressiveInlining
という値を設定します。Mono の trunk (本日コミット) でも利用可能です。
// 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
. 以前はここで "force" が使われていました。この用語を明確にするようにします。コメントやドキュメントにあるように
The method should be inlined if possible.
特にオープンなMonoでは、インライン化や一般的な技術的な制限(仮想関数など)があるため、Monoに特化した技術的な制限があります。全体として、これはコンパイラへのヒントなのですが、それが求められているのでしょう。
関連
-
[解決済み] 'SubSonic.Schema .DatabaseColumn' 型のオブジェクトをシリアライズする際に、循環参照が検出されました。
-
[解決済み】「namespace x already contains a definition for x」エラーの修正方法は?VS2010にコンバートした後に発生しました。
-
[解決済み】"指定されたパスのフォーマットはサポートされていません。"
-
[解決済み】「...は'型'であり、与えられたコンテキストでは有効ではありません」を解決するにはどうすればよいですか?(C#)
-
[解決済み] ...基礎となる接続は閉じられました。予期しないエラーが受信で発生しました
-
[解決済み】URLから画像をダウンロードする方法
-
[解決済み] 関数/メソッドのキーワード 'inline' はいつ書けばよいのですか?
-
[解決済み] 印刷用のインラインif文の書き方は?
-
[解決済み] GHCはどのような最適化を確実に実行することが期待できますか?
-
[解決済み] インライン仮想関数は本当に無意味なのか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C# ASP.NET使用時に「WebClientのリクエスト中に例外が発生しました。
-
[解決済み】Sequence contains no matching element(シーケンスにマッチする要素がない
-
[解決済み】リソースの読み込みに失敗した:ステータス500(内部サーバーエラー)のサーバーの応答)
-
[解決済み】MetadataException: 指定されたメタデータ・リソースをロードできない
-
[解決済み】HRESULTからの例外:0x800A03ECエラー
-
[解決済み】ランダムなブーリアンを生成する最速の方法
-
[解決済み】Linq 構文 - 複数列の選択
-
[解決済み】画像のペイントにTextureBrushを使用する方法
-
[解決済み】ファイルやアセンブリ、またはその依存関係の1つをロードできませんでした。
-
[解決済み] C#でインライン関数を作成する方法