Nullable Typ Problem mit?: Bedingter Operator

Könnte mir jemand erklären, warum das funktioniert C#.NET 2.0:

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

...aber das heißt nicht:

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

Letztere form gibt mir ein compile error "- Typ des bedingten Ausdrucks kann nicht bestimmt werden, denn es gibt keine implizite Konvertierung zwischen "<null> " und " System.DateTime'."

Nicht, dass ich nicht die erste, aber der zweite Stil ist mehr im Einklang mit dem rest von meinem code.

InformationsquelleAutor der Frage Nick Gotch | 2008-11-17

Schreibe einen Kommentar