지금까지는 C# Reference 타입에는 NULL을 할당할 수 있었는데, Null Exception를 발생시키는 원인 중 하나.
C# 8.0부터는 디폴트로 Nullable Reference Type 기능을 Disable이기 때문에 사용을 위해서는 프로젝트 레벨이나 파일 레벨, 혹은 소스코드 내의 임의의 위치에서 Enable 필요.
static void Main(string[] args)
{
#nullable enable
string s1 = null; // Warning: Converting null literal or
// possible null value to non-nullable type
if (s1 == null) return;
string? s2 = null;
if (s2 == null) return;
#nullable disable
string s3 = null; // No Warning
if (s3 == null) return;
}
#nullable enable
static void Print(string? s)
{
Console.WriteLine(s.Length); // Warning: Dereference of a possibly null reference
if (s != null)
{
Console.WriteLine(s);
}
}