例子:
class A
{
public A()
{
PrintFields();
}
public virtual void PrintFields() { }
}
class B : A
{
int x = 1;
int y;
public B()
{
y = -1;
}
public override void PrintFields()
{
Console.WriteLine("x={0},y={1}", x, y);
}
}
对B实例化后x和y的值分别为: 1,0
------------------------------------
C#类成员变量初始化与构造函数执行的顺序(类成员变量初始化先执行,后执行构造函数)
子类成员变量初始化
父类成员变量初始化
父类构造函数
子类构造函数
----------------------------------------------------------
class Foo
{
public Foo(string s)
{
Console.WriteLine("Foo constructor: {0}", s);
}