2011-03-09 7 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

+1

이 경우 필드의 참조 전에 정적 생성자가 실행됩니다. –

+0

사실, 부모의 정적 생성자가 두 번 이상 호출 될 수 있기를 바랬습니다. – pyon

관련 문제