Nullable Typ Problem mit?: Bedingter Operator

Kann jemand erklären, warum dies in C # .NET 2.0 funktioniert:

    Nullable<DateTime> foo;
    if (true)
        foo = null;
    else
        foo = new DateTime(0);

... aber das tut es nicht:

    Nullable<DateTime> foo;
    foo = true ? null : new DateTime(0);

Das letztere Formular gibt einen Kompilierungsfehler aus. "Der Typ des bedingten Ausdrucks kann nicht bestimmt werden, da keine implizite Konvertierung zwischen '<null>' und 'System.DateTime' erfolgt."

Nicht, dass ich den ersteren nicht verwenden kann, aber der zweite Stil ist konsistenter mit dem Rest meines Codes.