클래스를 만들다 보면 종종 둘 이상의 생성자를 작성해야 하는 경우가 있다. 그런데 생성자 내에서

멤버 변수들의 값을 초기화하도록 코드를 작성하다 보면 모든 생성자 내에서 멤버 변수들을 초기화

해야 함에도 불구하고 자칫 초기화 코드를 누락하는 경우가 있다. 이러한 오류를 범하지 않으려면

생성자의 본문에서 멤버 변수에 값을 할당하기보단 멤버 초기화 구문을 사용하는 것이 좋다.

정적 변수와 인스턴스 변수 어느 쪽이라도 가능한 한 멤버 초기화 구문을 사용하는 것이 좋다.

멤버 변수를 선언할 때 객체를 함께 생성하는 것은 C#에서 매우 자연스러운 구문이므로 멤버 변수를

선언할 때는 항상 초기화 구문을 사용하자.

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

이와 같이 코드를 작성하면 MyClass 타입에 몇 개의 생성자를 추가하든 상관없이 멤버 변수를 올바

르게 초기화할 수 있다. 컴파일러는 모든 생성자의 시작 부분에 멤버 초기화 구문을 포함 시키기

때문에 새로운 생성자를 추가하더라도 멤버 초기화 구문이 항상 포함된다. 따라서 생성자의

본문에서 별도로 멤버 변수를 초기화할 필요가 없다. 단지 변수를 선언하는 곳에서 변수를

초기화하도록 코드를 작성하기만 하면 된다. C# 컴파일러는 생성자를 갖지 않는 타입을 선언한

경우에도 기본 생성자를 자동으로 생성하는데 멤버 초기화 구문을 이용하면 컴파일러가 생성해

주는 기본 생성자의 앞쪽에도 초기화 구문이 포함된다.

멤버 초기화 구문은 생성자 본문 내에서 멤버 변수를 올바르게 초기화하는 작업 그 이상의 역할도

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

타입이 다른 클래스를 상속하고 있는 경우 베이스 클래스의 생성자가 호출되기 전에 멤버에 대한