−C#에는 표준 Option 타입이 없다. 값 형식에는 Nullable<T>(int?)가 있어 HasValue와 GetValueOrDefault를 제공하지만, 참조 형식에는 쓸 수 없다.[각주 6] 참조 형식의 string?은 별도 타입이 아니라 nullable 참조 형식이라는 컴파일 시점 기능이다. 컴파일러는 확인 없는 역참조에 경고를 낼 뿐이고 실행 동작은 바뀌지 않는다.[각주 7] 멤버를 따라가는 짧은 체인이라면 C#의 ?.(왼쪽이 null이면 null을 돌려주는 멤버 접근)와 ??(왼쪽이 null일 때 대신 쓸 값)로 같은 일을 할 수 있다. Option이 더하는 것은 비어 있음을 하나의 값으로 저장하고 넘길 수 있다는 점, 그리고 경고가 아니라 타입이 처리를 요구한다는 점이다.
+C#에는 표준 Option 타입이 없고, 값 형식에는 Nullable<T>(int?)가 HasValue와 GetValueOrDefault를 제공하지만 참조 형식에는 쓸 수 없다.[각주 6] 참조 형식의 string?은 별도 타입을 만드는 대신 nullable 참조 형식이라는 컴파일 시점 기능을 통해 확인 없는 역참조에 경고를 내며, 실행 동작은 바뀌지 않는다.[각주 7] 멤버를 따라가는 짧은 체인이라면 왼쪽이 null일 때 null을 돌려주는 ?.와 대신 쓸 값을 정하는 ??로 같은 일을 할 수 있는데, Option을 쓰면 비어 있음을 하나의 값으로 저장하고 넘기면서 그 처리를 경고가 아닌 타입으로 요구하게 된다.