Maybe<T>는 죽었고, Nullable<T>는 오래 살아남았다!
C#에서 nullable 타입은 정확성을 강제하기 위해 컴파일러를 지원하지 않는다. 여기서 실수하면 전체 프로그램에 충돌을 일으킬 수 있기 때문에 이것은 그동안 선택 사항을 표시하는 열등한 방법으로 여겨졌다. 이 때문에 사람들은 널 참조 예외를 발생시킬 위험이 없는 Maybe<T> 혹은 Option<T>와 같은 자신만의 선택적 타입을 구현했다. C# 8.0은 널 값에 대한 컴파일러 안전성 검사를 아주 잘하며, 이로 인해 자신만의 선택 타입을 구현해 사용하는 시대는 공식적으로 끝났다. 컴파일러는 임시방편으로 구현한 것보다 nullable 타입을 더 잘 검사하고 최적화할 수 있다. 또한, 연산자와 패턴을 매칭하여 언어에서 구문을 지원 받을 수도 있다. Nullable<T> 만세!
nullability 검사는 여러분이 작성 중인 코드에 대한 의도를 파악하는 데 도움을 준다. 이를 통해 여러분은 그 값이 정말 선택적인지 아니면 선택적일 필요가 전혀 없는지에 대해 더 명확하게 생각할 것이다. 이를 통해 여러분은 버그를 줄이고 더 나은 개발자가 될 수 있을 것이다.