.NET 6 Preview 7 부터 생성하는 모든(? 다 확인하지는 못했지만 일관성으로 보아 그렇게 예상) 프로젝트 템플릿의 기본 설정이 된 nullable 참조 형식 사용 <Nullable>enable</Nullable>
은 조금만 코드를 전개하다 보면 기존 null이 가능한 형식(참조형)을 코딩할 때 당혹감을 느낍니다. 다음의 코드를 보시죠.
class NullableTestClass
{
public string Name { get; set; } // CS8618 경고 발생
}
“응 아니야~ 참조형이 null일 수 있을 경우 명시적으로 표시해야 돼!” 라고 경고를 줍니다. 흠…;; 익숙해질 때까지 조금 시간이 걸리는데요, 코드를 저 속성 값이 null일 수 없게 다음 처럼 수정할 수도 있고,
class NullableTestClass
{
public string Name{ get; }
public NullableTestClass(string name)
{
name = stringValue;
}
};
또는 초기값을 줄 수 도 있고,
class NullableTestClass
{
public string Name { get; set; } = "Default Name";
}
아니면 Name 속성이 null일 수 있음을 string?
처럼 명시할 수 있습니다.
class NullableTestClass
{
public string? Name { get; set; } // CS8618 경고 발생 하지 않음
}
.NET 기본 라이브러리, 예를 들어 String
클래스의 정의를 보면 이제 null일 수 있는 인자는 string?
으로, null이 오면 안되는 Format()
의 format
인자의 경우 string
으로 정의되어 있음을 알 수 있습니다.