double? test = true ? null : 1.0;
En mi libro, esto es lo mismo que¿Por qué este código C# no se compila?
if (true) {
test = null;
} else {
test = 1.0;
}
Pero la primera línea da este error del compilador:
Type of conditional expression cannot be determined because there is no implicit conversion between '
<null>
' and 'double
'.
siempre puede enviar la errata al editor del libro :) o tal vez ya se ha encontrado y está en el libro Errata (normalmente en el sitio web del editor) – balexandre
La expresión "en mi libro" significa "hasta donde yo sé" - no es una referencia a un libro real :-) –
Su posición de que uno es el mismo que el otro no está confirmada ni por la especificación del idioma ni por la implementación; esas dos cosas son muy diferentes! El mensaje de error es correcto; la especificación del lenguaje requiere que la expresión sea implícitamente convertible a double ?, lo que requiere a su vez que la expresión tenga un tipo conocido. La expresión no tiene un tipo conocido, de ahí el error. –