¿Podría alguien explicar por qué esto funciona en C # .NET 2.0:
Nullable<DateTime> foo;
if (true)
foo = null;
else
foo = new DateTime(0);
... pero esto no:
Nullable<DateTime> foo;
foo = true ? null : new DateTime(0);
El último formulario me da un error de compilación "El tipo de expresión condicional no se puede determinar porque no hay conversión implícita entre '<null>' y 'System.DateTime'".
No es que no pueda usar el primero, pero el segundo estilo es más consistente con el resto de mi código.