04
25
다음 본문은 도서 이펙티브 C# (빌 와그너)에서 나오는 주제를 다룹니다.

 

 

할당 구문

 - 생성자 본문에서 멤버 변수의 값을 할당하는 것을 말한다.

 - 생성자가 여러개일 경우 누락의 우려가 있다.

public class MyClass()
{
    List<string> names;

    public MyClass()
    {
        names = new List<string>();
    }
}

 

멤버 초기화 구문

 - 멤버 초기화 구문에 의해 생성된 코드는 생성자 본문 앞에 덧붙여진다.

 - 모든 생성자가 객체 생성 방법이 동일한 경우에 사용하면 좋다.

public class MyClass()
{
    List<string> names = new List<string>();
}

 

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

1) 객체를 0이나 null로 초기화 하는 경우

 - 기본 시스템 초기화 루틴은 직접 CPU명령을 수행하여 메모리 블록을 0으로 설정한다.

 - 변수의 값을 0이나 null로 초기화한다면 불필요한 일을 추가적으로 하게 된다.

 

2) 모든 생성자의 객체 생성 방법이 동일하지 않은 경우

 - 객체를 반복해서 초기화하게 될 여지가 있다.

 

3) 예외처리가 반드시 필요한 경우

 - 멤버 초기화는 try문으로 감쌀 수 없기 때문에 초기화과정에서 에러가 나면 외부로 전파된다.

 

결론

 - 언급된 3가지의 경우를 제외한다면 가급적 멤버초기화 구문을 사용하자. 

 

 

 

COMMENT