Problema de tipo anulable con?: Operador condicional

¿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.

Respuestas a la pregunta(5)

Su respuesta a la pregunta