누군가 이것이 C # .NET 2.0에서 작동하는 이유를 설명 할 수 있습니까?
Nullable<DateTime> foo;
if (true)
foo = null;
else
foo = new DateTime(0);
...하지만 그렇지 않습니다 :
Nullable<DateTime> foo;
foo = true ? null : new DateTime(0);
후자의 형식은 " 'null>'과 'System.DateTime'사이에 암시 적 변환이 없기 때문에 조건식의 유형을 확인할 수 없습니다."라는 컴파일 오류를 나타냅니다.
전자를 사용할 수는 없지만 두 번째 스타일은 나머지 코드와 더 일관성이 있습니다.