부트캠프
C# Nullable Reference Type
noyyo
2023. 7. 18. 22:09
코드를 작성하다보니 CS8600 경고 코드를 마주하게 되었다.
string str = Console.ReadLine();
바로 이 코드에서 발생하게 되는 경고 메시지.
찾아보니 ReadLine() 메소드를 통해 null값이 들어올 수 있기에 생기는 경고 메시지라고 한다.
참조 타입으로 null 값이 리턴되어 예외가 나는 경우가 많았기에 C# 8.0부터 Nullable Reference Type을 도입했고 컴파일러가 위처럼 경고해주게 되었다. 경고 기능은 전처리 구문으로 원할 때 사용할 수 있다.
Nullable Reference Type은 기존 타입에서 ?를 붙여서 이 타입이 Nullable 하다는 것을 나타낸다.
string? str = Console.ReadLine();
위와 같이 사용하고 str에 null 값이 들어갈 수 있음을 의미한다.
이렇게 작성했을 때 경고 기능이 켜져 있다면 str변수를 사용할 때 null체크를 하지 않으면 컴파일러가 경고 메시지를 출력한다.
null 예외를 줄이는 좋은 방법인 것 같다.