空のコンストラクタまたはコンストラクタなし
2023-11-22 20:18:29
質問
クラス(C#)にデフォルトのコンストラクタを設けることは必須ではないと思います。
では、そのような場合、クラス内に空のコンストラクタを持つべきでしょうか、それとも省略してもよいのでしょうか?
空のデフォルトコンストラクタを持つことはベストプラクティスでしょうか。
Class test
{
public test()
{
}
......
}
または
Class test
{
......
}
どのように解決するのですか?
クラスが第三者に利用されることがなく、オーバーロードされたコンストラクタが必要ない場合は、空のコンストラクタを書かないようにしましょう。
しかし...
あなたがすでに製品を出荷し、サードパーティがあなたのクラスを使用していると想像してください。数ヶ月後、新しい要件があり、引数を持つコンストラクタを追加しなければならなくなりました。
さて、そうすることによって、C# コンパイラーはもはやデフォルトのコンストラクターを生成しません。空のコンストラクタを明示的に追加しない場合、サードパーティのコードは壊れてしまいます。
私見ですが、サードパーティが使用するパブリッククラスには、常に空のコンストラクタ(ワンライナー)を定義すべきです。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】"出力タイプがクラスライブラリのプロジェクトは直接起動できない"
-
[解決済み】クロススレッド操作が有効でない。作成されたスレッド以外のスレッドからアクセスされたコントロール
-
[解決済み】C# - パスに不正な文字がある場合
-
[解決済み】WSACancelBlockingCallの例外について
-
[解決済み】2年前のMSDateを把握する【クローズド
-
[解決済み】 C# 条件演算子エラー 代入、call、increment、decrement、await、new object 式のみ文として使用可能です。
-
[解決済み] [Solved] .NETでスレッドの終了を待つには?
-
[解決済み】Unityでゲームオブジェクトのすべての子をループスルーして破壊する方法?
-
[解決済み】プロセスが実行されているかどうかを知るには?
-
[解決済み】ユーザー設定値を別のユーザー設定値で設定する