gtag('config', 'AW-370362561');
[제프리 리처의 CLR via C#] 타입 생성자
오진이 블로그
오늘도 진이
« 2025/08 »
일 |
월 |
화 |
수 |
목 |
금 |
토 |
|
|
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
|
|
|
|
|
|
관리 메뉴
오진이 블로그
[제프리 리처의 CLR via C#] 타입 생성자 본문
2부. 타입 설계
8장. 메서드
타입 생성자
- CLR은 타입 생성자(혹은 정적 생성자, 클래스 생성자, 타입 초기자 등으로로 불린다)를 지원한다.
- 인스턴스 생성자는 인스턴스의 초기 상태를 설정하기 위해서 사용되고, 타입 생성자는 타입의 초기 상태를 설정하기 위해서 사용하게 된다.
- 타입은 내부적으로 사용하는 기본 타입 생성자가 따로 없다. 만약 타입 생성자를 정의해야 하는 경우라면 타입당 하나만 정의할 수 있으며 매개변수를 가질 수 없다.
- static 키워드를 사용해서 정의해야 한다.
- 타입 생성자는 반드시 private이어야 하는데, C#이 자동으로 private을 붙여준다.
- 타입 생성자는 반드시 private으로 선언되어 다른 개발자들이 작성된 코드에 의하여 임의로 호출되지 않도록 보호되어야 하며, CLR은 이와 무관하게 항상 타입 생성자를 자유롭게 호출할 수 있다.
- JIT 컴파일러가 메서드를 컴파일할 떄면, 메서드 내의 코드가 어떤 타입들을 참조하는지 확인한다.
- CLR이 타입 생성자를 앱도메인당 한 번씩만 실행하도록 다중 스레드에 안전함(Thread-Safe)을 보증하기 떄문에, 타입 생성자는 타입이 필요로 하는 싱글톤(Singleton) 객체를 최적화하기에 최적의 위치라고 할 수 있다.