C# 14: 새 field 키워드
C# 14은 새로운 키워드 field를 도입하였는데, 이 field 키워드는 자동 속성(auto-property)을 정의할 때,
컴파일러가 뒤에서 자동으로 생성하는 필드인 backing field에 직접 접근할 수 있도록 한 것이다.
예를 들어, 아래 예제에서 (A)처럼 Message 자동 속성을 정의하면, 컴파일러는 (B)처럼 내부적으로 Message 속성을 위한 backing field를 생성한다.
하지만, 자동 속성에 약간의 로직을 추가하고 싶다면, (C)처럼 backing field를 직접 선언해야 하고 set/get 접근자에서 backing field를 직접 참조해서 사용해야 한다.
C# 14에서는 (D)처럼 자동 속성에서 field 키워드를 사용하면, backing field를 따로 생성할 필요가 없으며,
set/get 접근자에서 field 키워드를 사용하여 마치 그것이 backing field인 것처럼 사용할 수 있다.
예제
// (A) 자동 속성(auto property)
public string Message
{
get;
set;
}
// (B) 컴파일러가 자동으로 생성하는 backing field
private string _message; // backing field라 부름
public string Message
{
get => _message;
set => _message = value;
}
// (c) 기존: 하지만 자동 속성에 약간의 로직을 추가하려면 backing field를 직접 선언해야 함
private string _message;
public string Message
{
get => _message;
set
{
if (value == null)
throw new ArgumentNullException(nameof(value));
_message = value;
}
}
// (d) C# 14에서는 새 field 키워드를 사용한 자동 속성에서 약간의 로직을 직접 추가
public string Message
{
get;
set => field = value ?? throw new ArgumentNullException(nameof(value));
}
본 웹사이트는 광고를 포함하고 있습니다. 광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.