Проблема типа Nullable с?: Условный оператор

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

Не то, чтобы я не мог использовать первый, но второй стиль больше соответствует остальной части моего кода.

Ответы на вопрос(1)

Ваш ответ на вопрос