01. 정적 생성자
정적 생성자는 타입 내에 정의된 모든 메서드, 변수, 속성에 최초로 접근하기 전에 호출되는 메서드다. 정적 변수를 초기화 하기 위해서 인스턴스 생성자, 혹은 private 메서드, 다른 관용구를 사용해서는 안된다. 정적 필드를 초기화하는 과정이 매우 크고 복잡하다면 Lazy<T>를 사용해서 지연 초기화를 사용할 수 있다.
단, 간단히 초기화하는 경우라면 정적 생성자를 사용하는 것 보다 멤버 초기화 구문을 통해서 초기화하는 것이 더 좋다.
01. A. 특징
멤버 초기화 구문과 마찬가지로 정적 멤버 초기화 구문도 정적 생성자가 호출되기 전에 실행되고 베이스 클래스의 정적 생성자 전에 실행된다. 앱도메인 내에서 CLR이 특정 타입에 접근하는 경우 정적 생성자를 우선 호출한다.
모든 타입은 정적 생성자를 단일로만 두며, 어떠한 인자도 넘길 수 없다. 정적 생성자는 CLR을 통해서 호출되기 때문에 예외가 발생할 가능성이 있다면 조심스럽게 접근할 필요가 있다.
'독서 > Effective C#' 카테고리의 다른 글
[Effective C#] 불필요한 객체를 만들지 말라 (0) | 2024.08.14 |
---|---|
[Effective C#] 초기화 코드가 중복되는 것을 최소화하라 (0) | 2024.08.13 |
[Effective C#] 할당 구문보다 멤버 초기화 구문이 좋다 (0) | 2024.08.08 |
[Effective C#] .NET 리소스 관리에 대한 이해 (0) | 2024.08.07 |
[Effective C#] 베이스 클래스가 업그레이드된 경우에만 new 한정자를 사용하라 (0) | 2024.08.06 |