2011-03-09 79 views
1

调用父类和子类的静态构造函数的顺序是什么?调用父类和子类的静态构造函数的顺序是什么?

class A  { static A() { MessageBox.Show("Yaht"); } } 
class B : A { static B() { MessageBox.Show("Zee"); } } 
class C : A { static C() { MessageBox.Show("Zey"); } } 

static void Main() 
{ 
    B b = new B(); 
    C c = new C(); 
} 

我现在可以测试它......如果我有一个编译器可用。

回答

2

输出:

Zee 
Yaht 
Zey 

..........

+0

+1,我获得相同的行为。现在,为什么?父静态构造函数首先被调用是不是更有意义?如果B在A中引用了尚未初始化的静态字段,该怎么办? – Cameron 2011-03-09 00:37:13

+1

在这种情况下,A的静态构造函数将在引用该字段之前运行。 – 2011-03-09 00:41:54

+0

其实,我希望能够多次调用父类的静态构造函数。 – pyon 2011-03-09 13:35:09

相关问题