C# で別のコンストラクターを呼び出す
読み取り専用フィールドを初期化するコンストラクターを扱うときは、ロジックの重複を避けることが望ましいです。さらに、コンストラクター内でのみ読み取り専用フィールドを設定すると、データの整合性が保証されます。ただし、コンストラクターは他のコンストラクターを直接呼び出すことはできません。
解決策: メソッドチェーン呼び出し
この制限を克服するには、メソッドチェーンを使用できます。 C# では、これには、既存のコンストラクターからのパラメーターを使用して新しいコンストラクターを呼び出すことが含まれます。この構文を使用すると、セットアップ ロジックを一元化しながら複数のフィールドを初期化できます:
<code class="language-csharp">public class Sample { public Sample(string theIntAsString) : this(int.Parse(theIntAsString)) { // ...额外的初始化逻辑... } public Sample(int theInt) { _intField = theInt; } public int IntProperty => _intField; private readonly int _intField; }</code>
文字列引数を取るコンストラクターからフィールドの初期化を呼び出すことで、整数引数を取るコンストラクターにフィールドの初期化を委任できます。これにより、コードの重複が排除され、一貫したフィールド設定が保証されます。
以上がコードの重複を避けるために、C# で 1 つのコンストラクターを別のコンストラクターから呼び出すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。