これは初心者の質問のようなものです。私は単純なプロパティを持っています
bool IsRoot { get { return parent==null; } }
クラス (および派生クラス) 内の他のプロパティやメソッドから何度も呼び出します。
コードを (私にとって) 読みやすくするため、このようにしておくのが好きですがIsRoot
、最終リリース コードでは「インライン化」されていない可能性があるため、すべての呼び出しが遅くなるのではないかと心配しています。「インライン」とは、 のparent==null
代わりに評価のコピーに置き換えられるということですget_IsRoot()
。
プロパティがC#でインライン化されている場合(または場合)、およびパフォーマンス指向のアプリケーションの場合、プロパティを回避する必要があるかどうかを誰かが説明できますか?
EDIT_1 : 簡単な答えは次のとおりです。プロパティは純粋な関数呼び出しに変換され、JIT の決定に応じてインライン化される場合とされない場合があります。プロファイラーが使用され、最終結果がパフォーマンスのために微調整されない限り、システムが正しい選択を行うことを信頼し、5% から 10% のレベルで物事に影響を与える可能性があることについて心配する必要はありません。
リンクの SO コミュニティに感謝します。複数の正解を与える方法があったことを願っています。申し訳ありませんが、1つを選択する必要がありました。