Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# 정적 생성자(Static Constructor)란? 호출 시점과 핵심 특징 완벽 정리

정적 생성자(static constructor)는 첫 번째 인스턴스가 생성되기 전 또는 정적 멤버가 처음 참조되기 전에 자동으로 호출됩니다.

정적 생성자는 정적 데이터를 초기화하거나, 프로그램 전체에서 단 한 번만 수행하면 되는 특정 작업을 처리하는 데 사용됩니다.

C#에서는 하나의 클래스에 대해 정적 생성자를 오직 하나만 선언할 수 있습니다.

정적 생성자의 주요 특징

  • 접근 제한자(access modifier)를 사용할 수 없으며, 매개변수도 가질 수 없습니다.
  • 클래스(class)나 구조체(struct)에는 정적 생성자가 하나만 존재할 수 있습니다.
  • 상속되거나 오버로드(overload)될 수 없습니다.
  • 직접 호출할 수 없으며, 오직 공용 언어 런타임(CLR)에 의해서만 자동으로 호출됩니다.

즉, 개발자는 프로그램 내에서 정적 생성자가 실행되는 시점을 직접 제어할 수 없습니다. CLR이 필요한 시점을 판단하여 자동으로 호출하기 때문입니다.

예제 코드

class Program
{
    // 정적 생성자 - 인스턴스 생성 전 또는 정적 멤버 참조 시 자동 호출
    static Program()
    {
        // 초기화 코드 작성
    }

    static void Main()
    {
        Console.ReadLine();
    }
}

위 예제처럼 정적 생성자는 클래스 이름과 동일하게 선언하며, 별도의 호출 코드 없이도 CLR이 적절한 시점에 자동으로 실행해 줍니다.