C#/WPF

[WPF] 생성자 단위 초기화와 필드 단위 초기화

HJ0216 2024. 6. 4. 17:34

현재 프로젝트를 진행하고 있는데, 특정 API를 호출해서 사용하고 있습니다.

 

무얼 정리하면 좋을까하다가 java와 달리 C#에서는 필드라는 개념이 추가적으로 있는데, 이와 관련하여 정리해보고자 합니다.

 


생성자를 이용한 초기화

1
2
3
4
5
6
7
8
9
10
11
private string _initializationConstructor;
public string InitializationConstructor
{
    get { return _initializationConstructor; }
    set { _initializationConstructor = value; }
}
 
public ViewModelMain()
{
    InitializationConstructor = "Initialize with Constructor";
}

특징

 * 생성자 매개변수를 통해 초기값을 유연하게 설정

 * 클래스의 필드 및 속성 초기화가 모두 끝난 후에 생성자가 호출

 

 

필드에서의 직접 초기화

1
2
3
4
5
6
7
private string _initializationField = "Initialize with Field";
 
public string InitializationField
{
    get { return _initializationField; }
    set { _initializationField = value; }
}

특징

 * 간단한 값을 초기화할 때 사용

 * 생성자 호출 전에 초기화

 

만일 필드에서의 초기값과 생성자를 활용한 초기값을 한 번에 설정한다면?

생성자는 필드 및 속성 초기화가 끝난 후에 호출되기 때문에, 필드 초기화한 값을 생성자에서 다시 설정할 경우 생성자 기준으로 값이 설정됨