Czy ktoś mógłby wyjaśnić, dlaczego to działa w C # .NET 2.0:
Nullable<DateTime> foo;
if (true)
foo = null;
else
foo = new DateTime(0);
... ale to nie:
Nullable<DateTime> foo;
foo = true ? null : new DateTime(0);
Druga forma powoduje błąd kompilacji „Nie można określić typu wyrażenia warunkowego, ponieważ nie ma niejawnej konwersji między '<null>' i 'System.DateTime'.”
Nie to, że nie mogę użyć pierwszego, ale drugi styl jest bardziej spójny z resztą mojego kodu.