簡単な構文を使用して値を直接代入して派生クラス フィールドを初期化する場合、コンパイラは、最初に派生クラス フィールドを初期化し、次に base .ctor を呼び出す IL コードを生成します。ベース .ctor フィールドを呼び出さず、派生クラス フィールドを初期化しない理由。基本クラスのフィールドに依存するフィールドがある場合はどうなりますか?
ここにコード サンプルを掲載したいと思いますが、携帯電話からこの質問を投稿しています。
コンストラクター内で仮想メソッドやイニシャライザーが呼び出された場合に対応する必要があるからだと思います。
Eric Lippert は、彼のブログで 2 部構成のシリーズを公開しています。
あなたの納得のためにここに言及するだけです。お役に立てれば。
Calling methods on derived types from constructors is dirty pool, but it is not illegal.
また、完全に構築されていないオブジェクトをグローバル状態に詰め込むことは危険ですが、違法ではありません。