Qualcuno potrebbe spiegare perché questo funziona in C # .NET 2.0:
Nullable<DateTime> foo;
if (true)
foo = null;
else
foo = new DateTime(0);
... ma questo non:
Nullable<DateTime> foo;
foo = true ? null : new DateTime(0);
Quest'ultimo modulo mi dà un errore di compilazione "Il tipo di espressione condizionale non può essere determinato perché non esiste una conversione implicita tra '<null>' e 'System.DateTime'."
Non che non riesca a usare il primo, ma il secondo stile è più coerente con il resto del mio codice.