830페이지에 예제 코드를 보면
// NotNullWhen 특성의 생성자에 전달된 false에 따라
// IsNull 메서드가 false를 반환하면 null이라고 C# 컴파일러가 인지
static bool IsNull([NotNullWhen(false)] string? value)
{
if (value == null)
{
return true;
}
return false;
}
이 예제 코드 주석에 "NotNullWhen 특성의 생성자에 전달된 false에 따라 IsNull 메서드가 false를 반환하면 null이라고 C# 컴파일러가 인지" 라고 설명이 돼 있는데요.
그런데 이 설명이 잘못 된 것 같습니다.
NotNullWhen 특성은 전달된 bool returnValue(예제 코드에서는 false로 전달함)에 따라 IsNull을 메서드가 false 반환하면
NotNullWhen 특성이 적용된 string? value 매개변수가 "null이 아니라고" C# 컴파일러가 인지해야 하지 않을까 생각이 됩니다.
[최초 등록일: ]
[최종 수정일: 9/10/2020]