Könnte 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 geht nicht:
Nullable<DateTime> foo;
foo = true ? null : new DateTime(0);
Das letztere Formular gibt mir einen Kompilierungsfehler. "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 stimmt besser mit dem Rest meines Codes überein.