본문 바로가기

TechLog

객체 이니셜라이저

다음과 같은 코드가 있다고 가정하자:

 

TextBlock newTextBlock = new TextBlock();
newTextBlock.Text = string.Format("{0} 번 터치되었습니다.", touched);
newTextBlock.HorizontalAlignment = HorizontalAlignment.Left;
newTextBlock.VerticalAlignment = VerticalAlignment.Top;
newTextBlock.Margin = new Thickness(
    0,
    2 * touched * txtblXAML.ActualHeight,
    0, 0);

 

위 코드는 다음과 같이 바꿀 수 있다:

 

TextBlock newTextBlock = new TextBlock()
{
    Text = string.Format("{0} 번 터치되었습니다.", touched),
    HorizontalAlignment = HorizontalAlignment.Left,
    VerticalAlignment = VerticalAlignment.Top,
    Margin = new Thickness(
        0,
        touched * txtblXAML.ActualHeight,
        0, 0)
};

 

위 문법은 C# 3.0부터 포함된 객체 이니셜라이저(Object Initializer) 문법으로, 명시적인 생성자 없이도 객체의 내부 멤버의 값을 지정할 수 있는 방법을 제공한다. 객체 이니셜라이저를 사용하면 파라메터를 통해 내부 변수의 값을 정의하는 코드를 작성하는 수고를 덜 수 있으며, 특정 객체를 생성할 때 해당 객체와 관련된 코드가 시각적으로 분리되어 있어 코드를 읽기가 용이하다.