[解決済み】C#でコンストラクタのチェーニングを行う方法
2022-04-15 18:53:02
質問
超簡単な質問のはずなのですが、このところ、このコンセプトに悩まされています。
私の質問は、C#でコンストラクタをどのように連鎖させるかです。
私は初めてのOOPの授業を受けているので、ちょうど勉強中です。コンストラクタの連結がどのように機能するのか、どのように実装するのか、また、なぜ連結せずにコンストラクタだけを行うよりも良いのかさえも理解していません。
説明付きの例題をお願いします。
では、どのように連鎖させるのでしょうか?
2つならわかるんだけどね。
public SomeClass this: {0}
public SomeClass
{
someVariable = 0
}
しかし、3つ、4つと続くとなるとどうでしょう?
またまた、初心者の質問なのですが、これがなかなか理解できなくて、どうしてなのでしょうか?
どのように解決するのですか?
標準的な構文を使用します。
this
メソッドのように)オーバーロードを選択します。
内部
を指定します。
class Foo
{
private int id;
private string name;
public Foo() : this(0, "")
{
}
public Foo(int id, string name)
{
this.id = id;
this.name = name;
}
public Foo(int id) : this(id, "")
{
}
public Foo(string name) : this(0, name)
{
}
}
をクリックすると
Foo a = new Foo(), b = new Foo(456,"def"), c = new Foo(123), d = new Foo("abc");
も注意してください。
-
を使用すると、ベースタイプのコンストラクタにチェーンすることができます。
base(...)
- 各コンストラクタに余分なコードを入れることができます。
-
を指定すると、(何も指定しない場合の)デフォルトは
base()
for "なぜ?
- コード削減 (常に良いことです)
-
必要 を使用して、例えばデフォルトでないベースコンストラクタを呼び出すことができます。
SomeBaseType(int id) : base(id) {...}
なお、オブジェクト・イニシャライザーも同様の方法で(何も書かなくても)使用することができます。
SomeType x = new SomeType(), y = new SomeType { Key = "abc" },
z = new SomeType { DoB = DateTime.Today };
関連
-
[解決済み】WebResource.axdとは何ですか?
-
[解決済み] C++で、あるコンストラクタを別のコンストラクタから呼び出す(コンストラクタ・チェイニングを行う)ことは可能ですか?
-
[解決済み] enumを列挙するには
-
[解決済み] intをenumにキャストするにはどうすればよいですか?
-
[解決済み] Java で、あるコンストラクタを別のコンストラクタから呼び出すにはどうすればよいですか?
-
[解決済み] C#でベースコンストラクタを呼び出す
-
[解決済み] なぜList<T>を継承しないのですか?
-
[解決済み] コンストラクタ内の仮想メンバー呼び出し
-
[解決済み] あるコンストラクタを別のコンストラクタから呼び出す
-
[解決済み] コンストラクタのシグネチャを定義するインターフェース?
最新
-
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#で四捨五入する方法
-
[解決済み】SmtpException: トランスポート接続からデータを読み取れません:net_io_connectionclosed
-
[解決済み】Sequence contains no matching element(シーケンスにマッチする要素がない
-
[解決済み】Unity 「関連するスクリプトを読み込むことができません」「Win32Exception: システムは指定されたファイルを見つけることができません"
-
[解決済み】Entity FrameworkからのSqlException - セッション内で他のスレッドが動作しているため、新しいトランザクションは許可されません。
-
[解決済み】WSACancelBlockingCallの例外について
-
[解決済み】URLから画像をダウンロードする方法
-
[解決済み】プロセスが実行されているかどうかを知るには?
-
[解決済み】別のスレッドがこのオブジェクトを所有しているため、呼び出し側のスレッドはこのオブジェクトにアクセスできない
-
[解決済み】"this "キーワードはいつ使う?[クローズド]