已知
public class Test
{
private static Hashtable ht;
public Test()
{
}
static Test()
{
ht = new Hashtable();
ht.Add("a", "x");
}
public static object Check()
{
return ht["a"];
}
}
public class Test2:Test
{
static Test2()
{
}
public Test2()
{
}
public static void fun()
{
}
}
{
private static Hashtable ht;
public Test()
{
}
static Test()
{
ht = new Hashtable();
ht.Add("a", "x");
}
public static object Check()
{
return ht["a"];
}
}
public class Test2:Test
{
static Test2()
{
}
public Test2()
{
}
public static void fun()
{
}
}
执行
void Main(){
Test2 t2 = new Test2();
}
构造函数执行顺序:static Test2() -> static Test() -> Test() -> Test2()
先执行子类静态构造函数,再执行父类静态构造函数,这正好与非静态构造函数执行顺序相反