重複の可能性あり:
C# コンストラクターの実行順序
class Foo
{
public int abc;
Foo()
{
abc = 3;
}
}
class Bar : Foo
{
Bar() : base()
{
abc = 2;
}
}
上記の例では、Bar のオブジェクトが作成されると、BarObject.abc の値は何になりますか? 最初に基本コンストラクターが呼び出されますか、それとも Bar() が実行されてから、base() コンストラクターが呼び出されますか?
ベストアンサー1
2 になります。コンストラクターは、最初に基本クラスから最後に継承されたクラスの順に実行されます。
初期化子 (静的変数とインスタンス変数の両方) は反対方向に実行されることに注意してください。
完全なシーケンスはここにあります:http://www.csharp411.com/c-オブジェクト初期化/