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.

Antworten auf die Frage(10)

Ihre Antwort auf die Frage