C# でメンバー変数を宣言する場合、主な初期化方法は 2 つあります。宣言時の直接代入と、デフォルトのコンストラクターでの初期化です。この記事では、各アプローチの長所と短所を調査し、パフォーマンスへの影響について説明します。
フィールドの初期化とは、メンバー変数を宣言するときに値を直接代入することを意味します。例:
<code class="language-csharp">private List<object> _things = new List<object>(); private int _arb = 99;</code>
一方、コンストラクターの初期化とは、デフォルトのコンストラクターでメンバー変数に値を代入することを指します。例:
<code class="language-csharp">private List<object> _things; private int _arb; public TheClass() { _things = new List<object>(); _arb = 99; }</code>
パフォーマンスの点では、フィールドの初期化とコンストラクターの初期化の間に大きな違いはありません。どちらのメソッドも基本的にコンストラクターに初期化ロジックを実装します。唯一のわずかな違いは、フィールド初期化子が「base」または「this」コンストラクターを呼び出す前に発生することです。
自動的に実装されたプロパティを使用する場合、コンストラクターのアプローチがより適切になります。自動実装されたプロパティではフィールドの初期化ができないため、コンストラクターで初期化する必要があります。例:
<code class="language-csharp">[DefaultValue("")] public string Foo { get; set; } public Bar() { // 构造函数 Foo = ""; }</code>
上記の考慮事項に加えて、フィールド初期化とコンストラクター初期化のどちらを選択するかは、個人の好みとコーディング スタイルに大きく依存します。ただし、一般的なガイドラインがいくつかあります:
C# でメンバー変数を初期化するためのベスト プラクティスは、コードの特定のニーズによって異なります。パフォーマンスに違いはありませんが、フィールドの初期化では初期化ロジックが局所化されるのに対し、コンストラクターの初期化ではより複雑なシナリオが可能になります。各方法の長所と短所を考慮することで、開発者はコードに最適な方法を選択できます。
以上がC# メンバー変数: フィールドの初期化とコンストラクターの初期化 - どちらが最適ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。