转自:http://www.cnblogs.com/jackhuclan/archive/2008/01/10/1033042.html
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
class Program
{
static void Main(string[] args)
{
DriveB d = new DriveB();
Console.Read();
}
}
class BaseA
{
static DisplayClass a = new DisplayClass("基类静态成员初始化");
DisplayClass BaseA_c = new DisplayClass("基类实例成员初始化");
static BaseA()
{
new DisplayClass("基类静态构造方法被调用");
}
public BaseA()
{
new DisplayClass("基类构造方法被调用");
}
}
class DriveB : BaseA
{
static DisplayClass DriveB_b = new DisplayClass("继承类静态成员初始化");
DisplayClass DriveB_c = new DisplayClass("继承类实例成员初始化");
static DriveB()
{
new DisplayClass("继承类静态构造方法被调用");
}
public DriveB()
{
new DisplayClass("继承类构造方法被调用");
}
}
class DisplayClass
{
public DisplayClass(string diplayString)
{
Console.WriteLine(diplayString);
Console.WriteLine();
}
}
{
static void Main(string[] args)
{
DriveB d = new DriveB();
Console.Read();
}
}
class BaseA
{
static DisplayClass a = new DisplayClass("基类静态成员初始化");
DisplayClass BaseA_c = new DisplayClass("基类实例成员初始化");
static BaseA()
{
new DisplayClass("基类静态构造方法被调用");
}
public BaseA()
{
new DisplayClass("基类构造方法被调用");
}
}
class DriveB : BaseA
{
static DisplayClass DriveB_b = new DisplayClass("继承类静态成员初始化");
DisplayClass DriveB_c = new DisplayClass("继承类实例成员初始化");
static DriveB()
{
new DisplayClass("继承类静态构造方法被调用");
}
public DriveB()
{
new DisplayClass("继承类构造方法被调用");
}
}
class DisplayClass
{
public DisplayClass(string diplayString)
{
Console.WriteLine(diplayString);
Console.WriteLine();
}
}
调用顺序:
1.继承类静态成员初始化
2.继承类静态构造方法被调用
3.继承类实例成员初始化
4.基类静态成员初始化
5.基类静态构造方法被调用
6.基类实例成员初始化
7.基类构造方法被调用
8.继承类构造方法被调用