C# 프로그램 실행 순서
C# 클래스의 초기화 순서
상속된 클래스의 정적 데이터 멤버 초기화,
상속된 클래스의 정적 생성자(클래스 이름에서 첫 번째 time 참조될 때 호출됩니다. 해당 생성자가 없으면
정적 데이터 멤버가 언제 초기화될지 예측할 수 없습니다.)
상속된 클래스 초기화 프로그램의 인스턴스 데이터 멤버입니다. /p>
상속된 클래스의 생성자의 내용을 실행하기 전
기본 클래스의 정적 데이터 멤버 초기화는 static int a = 1입니다. /// 클래스 데이터 멤버 정의
기본 클래스의 정적 생성자(기본 클래스의 클래스 이름이 상속된 클래스보다 먼저 참조되는 경우 기본 클래스가 먼저 실행됩니다.
정적 생성자)
기본 클래스의 인스턴스 유형 데이터 멤버의 초기화
기본 클래스의 생성자
그런 다음 생성자의 내용을 실행합니다. 상속된 클래스의 ;
예:
public class Base
{
A: private static int Number = 12; p>
B: private int localNumner = 1;
C: static Base()
{
///
} p>
D: 공용 Base()
{
}
}
공용 클래스 하위: 기본
{
E: private static int ChildNumber = 14;
F: private int local_child_number = 7;
G: 정적 Child()
{
///
}
H: public Child()
{
나: ///
}
}
자식 child = new Child();
초기화 순서는
E G F H A C B D I;
클래스의 클래스 이름이 처음 참조될 때 정적 생성자가 호출됩니다.
public class Test
{
static Test()
{
}
공개 staitc int 계정
{
가져오기
{
반환 1;
}
}
/// 예시
public static int GetAccount()
{
return 1;
}
공개 클래스 중첩
{
}
공개 대리자 void Add();
}
X1일 때: 계정을 테스트합니다.
t();
X2: 테스트 a = new Test();
X3: Test.GetAccount();
X4: Test.Nested p = new Test.Nested();
X5: Test.Add a = new Add(someMethods);
{ 그 중 하나가 나타나면 Test의
를 호출하세요. 정적 생성자