Может кто-нибудь объяснить, почему это работает в 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 ».»
Не то, чтобы я не мог использовать первый, но второй стиль более соответствует остальной части моего кода.