정적 생성자는 클래스를 초기화하는 데 사용됩니다. 이 생성자는 첫 번째 인스턴스가 만들어지기 전이나 정적 멤버가 참조되기 전에 클래스를 초기화하기 위해 자동으로 호출됩니다. 이것은 다음 형식으로 선언됩니다.
[attributes]staticidentifier(){constructor-body}
다음은 각 문자에 대한 설명입니다.
attributes(선택적 요소) 추가 선언 정보입니다.
identifier 는 클래스 이름과 같습니다.
constructor-body 클래스를 초기화하는 문을 포함하는 블록입니다.
설명
정적 생성자는 액세스 한정자를 사용하지 않고 매개 변수를 갖지 않습니다.
정적 생성자는 첫 번째 인스턴스가 만들어지기 전이나 정적 멤버가 참조되기 전에 클래스를 초기화하기 위해 자동으로 호출됩니다.
정적 생성자는 직접 호출할 수 없습니다.
사용자는 프로그램에서 정적 생성자가 실행되는 시기를 제어할 수 없습니다.
정적 생성자는 일반적으로 클래스에서 로그 파일을 사용할 때 이 파일에 항목을 쓰기 위해 사용됩니다.
예제
이 예제에서MyClass
클래스에는 정적 생성자와 한 개의 정적 멤버MyMethod()
가 있습니다.MyMethod()
를 호출할 경우, 정적 생성자가 호출되어 클래스를 초기화합니다.
// StaticCtor1.cs
using System;
class MyClass
{
// Static constructor:
static MyClass()
{
Console.WriteLine("The static constructor invoked.");
}
public static void MyMethod()
{
Console.WriteLine("MyMethod invoked.");
}
}
class MainClass
{
static void Main()
{
MyClass.MyMethod();
}
}
출력
The static constructor invoked.
MyMethod invoked.