C#/이펙티브 C#

아이템 13. 정적 클래스 멤버를 올바르게 초기화하라.

공부를하자 2023. 7. 5. 01:30

1.정적(static) 클래스

-한정자를 사용하여 특정 개체가 아니라 형식 자체에 속하는 정적 멤버를 선언할 수 있다.

-정적 멤버변수를 포함하는 타입이 있으면 인스턴스를 생성하기 전에 정적 멤버 변수를

 초기화 해야한다.

-C# 에서는 정적 멤버 초기화구문과 정적 생성자 가지 기능을 제공.

 

2.정적멤버 초기화

-정적 멤버 선언 초기화를 하는 . 일반 멤버처럼 초기화.

-정적 생성자보다 이전에 실행되며 베이스 클래스의 정적생성자가 있다 해도 보다 먼저 실행된다.

3.정적 생성자

-타입내에 정의된 모든 메서드,변수,속성에 최초로 접근하기 전에 자동으로 호출 되는 메서드.

-정적변수 초기화, 싱글턴 패턴을 작성할 있다.

-정적멤버 초기화에서 예외가 발생되면 TypelnitializationException 던지고 응용프로그램 종료시킨다.

 그때는 멤버초기화를 쓰기 껄꺼럽고 예외를 잡을 없기에 정적 생성자를 사용하자.

 

4.결론

-기본적으로 멤버초기화를 사용하되 예외 발생가능성이 있다면 정적생성자를 사용하자.

.