1. ホーム
  2. c#

空のコンストラクタまたはコンストラクタなし

2023-11-22 20:18:29

質問

クラス(C#)にデフォルトのコンストラクタを設けることは必須ではないと思います。

では、そのような場合、クラス内に空のコンストラクタを持つべきでしょうか、それとも省略してもよいのでしょうか?

空のデフォルトコンストラクタを持つことはベストプラクティスでしょうか。

Class test
{
   public test()
   {

   }
        ......
}

または

Class test
{
        ......
}

どのように解決するのですか?

クラスが第三者に利用されることがなく、オーバーロードされたコンストラクタが必要ない場合は、空のコンストラクタを書かないようにしましょう。

しかし...

あなたがすでに製品を出荷し、サードパーティがあなたのクラスを使用していると想像してください。数ヶ月後、新しい要件があり、引数を持つコンストラクタを追加しなければならなくなりました。

さて、そうすることによって、C# コンパイラーはもはやデフォルトのコンストラクターを生成しません。空のコンストラクタを明示的に追加しない場合、サードパーティのコードは壊れてしまいます。

私見ですが、サードパーティが使用するパブリッククラスには、常に空のコンストラクタ(ワンライナー)を定義すべきです。