ホームページ > バックエンド開発 > C++ > C# で 1 つのコンストラクターを別のコンストラクターから呼び出して読み取り専用フィールドを初期化するにはどうすればよいですか?

C# で 1 つのコンストラクターを別のコンストラクターから呼び出して読み取り専用フィールドを初期化するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2025-01-12 11:52:43
オリジナル
532 人が閲覧しました

How Can I Call One Constructor from Another in C# to Initialize Readonly Fields?

C# のコンストラクター チェーン: 読み取り専用フィールドの初期化のソリューション

場合によっては、複数のコンストラクターを使用して readonly フィールドを初期化する必要があります。 readonly フィールドにはコンストラクター内でのみ値を割り当てることができるため、コンストラクター間で初期化ロジックを単純に複製することは非効率的で、エラーが発生しやすくなります。 C# は、コンストラクター チェーンというクリーンなソリューションを提供します。

this

の力

コンストラクターの連鎖は、this キーワードを利用して、あるコンストラクターを別のコンストラクターから呼び出します。 これにより初期化プロセスがリダイレクトされ、冗長なコードが排除されます。

これが例です:

<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>
ログイン後にコピー

この Sample クラスは 2 つのコンストラクターを示します。最初のコンストラクターは文字列を受け取り、それを整数に解析してから、2 番目のコンストラクターにチェーンし、解析された整数を渡します。 2 番目のコンストラクターは、readonly フィールドを直接初期化します。 このアプローチにより、初期化ロジックが一元化された状態が維持され、クラスのインスタンス化方法に柔軟性が提供されます。

コンストラクター チェーンを使用すると、初期化ロジックの重複が回避され、コードがよりクリーンで保守しやすくなり、コードの再利用性が向上し、不整合のリスクが軽減されます。

以上がC# で 1 つのコンストラクターを別のコンストラクターから呼び出して読み取り専用フィールドを初期化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート