原地址:http://www.soaspx.com/dotnet/csharp/csharp_20110325_7419.html
子类的静态成员
子类的静态构造函数
父类的静态成员
父类的静态构造函数
父类的构造函数
子类的构造函数
每一个类静态成员只初始化一次。
原文地址:http://zhidao.baidu.com/question/71750487.html
C# 类的初始化顺序
继承类的static数据成员的初始化器,
继承类的static构造器 (在类名, 第一次被引用时, 调用, 如果, 没有这个构
造器, 则static数据成员何时被初始化, 是不可预测的)
继承类的实例型数据成员的初始化器
在执行继承类的构造器的内容之前;
基类的static数据成员 的初始化器 即 static int a = 1;
/// 类数据成员的定义
基类的static 构造器 ,(如果,基类的类名, 先于继承类被引用, 则先执行基
类的static构造器)
基类的实例型数据成员的初始化器
基类的构造器
接着执行继承类的构造器的内容;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 类的执行顺序
{
public class Parent
{
static Parent()
{
Console.WriteLine("Parent Static Constructor");
}
public Parent()
{
Console.WriteLine("Parent Constructor");
}
}
public class Child : Parent
{
static Child()
{
Console.WriteLine("Child Static Constructor");
}
public Child()
{
Console.WriteLine("Child Constructor");
}
}
class test
{
static void Main()
{
Child c1 = new Child();
}
}
}
public class Parent
{
static Parent()
{
Console.WriteLine("Parent Static Constructor");
}
public Parent()
{
Console.WriteLine("Parent Constructor");
}
}
public class Child:Parent
{
static public Child instance = new Child();
static Child()
{
Console.WriteLine("Child Static Constructor");
}
public Child()
{
Console.WriteLine("Child Constructor");
}
}
public class test
{
static test()
{
Console.WriteLine("Main static");
}
static void Main()
{
Child c = new Child();
}
}
public class Parent
{
static Parent()
{
Console.WriteLine("Parent Static Constructor");
}
public Parent()
{
Console.WriteLine("Parent Constructor");
}
}
public class Child:Parent
{
static public Child instance = new Child();
static Child()
{
Console.WriteLine("Child Static Constructor");
}
public Child()
{
Console.WriteLine("Child Constructor");
}
}
public class test
{
static test()
{
Console.WriteLine("Main static");
}
static void Main()
{
Child c = new Child();
}
}
public class Parent
{
/*Parent Constructor
* Parent Static Constructor
* Parent Constructor
* Child Constructor
* Child Static Constructor
* Parent Constructor
* Child Constructor
* */
static public Parent instance = new Parent();
static Parent()
{
Console.WriteLine("Parent Static Constructor");
}
public Parent()
{
Console.WriteLine("Parent Constructor");
}
}
public class Child : Parent
{
static public Child instance = new Child();
static Child()
{
Console.WriteLine("Child Static Constructor");
}
public Child()
{
Console.WriteLine("Child Constructor");
}
}
public class test
{
static void Main()
{
Child c = new Child();
}
}