[Effective C#] 아이템 12: 할당 구문보다 멤버 초기화 구문이 좋다


하나의 클래스에 여러 개의 생성자를 작성해야 할 때,

각각의 생성자에서 멤버 변수를 초기화 하는 것보다 멤버 초기화 구문을 사용하는 것이 좋다.

public class MyClass
{
    // 컬렉션을 선언과 동시에 초기화
    private List<string> labels = new List<string>();
}

이렇게 하면 각각의 생성자에서 labels를 초기화할 필요가 없어진다.

따라서 모든 생성자가 동일한 방법으로 멤버 변수를 초기화하는 경우에는 멤버 초기화 구문을 사용하는 것이 좋다. (코드 가독성 향상, 유지보수 용이)

멤버 초기화 구문의 특징

  • 멤버 초기화 구문은 각 생성자의 앞쪽에 자동으로 추가된다.
  • 베이스 클래스의 생성자가 호출되기 전에 초기화된다.
  • 멤버 변수의 초기화 순서는 변수 선언 순서이다.

멤버 초기화 구문을 사용하지 않아야 할 경우

  • 0이나 null로 초기화하는 경우 (기본 초기화 루틴과 같기 때문)
  • 동일한 객체를 반복해서 초기화하는 경우 (객체가 두번 생성되어 가비지가 발생한다)
  • 예외 처리가 반드시 필요한 경우 (멤버 초기화 구문은 try로 감쌀 수 없다)

댓글남기기