double? test = true ? null : 1.0;
В моей книге, это то же самое, какПочему этот код C# не компилируется?
if (true) {
test = null;
} else {
test = 1.0;
}
Но первая строка дает эту ошибку компилятора:
Type of conditional expression cannot be determined because there is no implicit conversion between '
<null>
' and 'double
'.
вы всегда можете отправить Errata издателю книги :) или, возможно, это уже было найдено, и оно находится в книге «Исправление» (обычно на веб-сайте издателя) – balexandre
Выражение «в моей книге» означает «насколько я знаю», - это не ссылка на настоящую книгу :-) –
Ваша позиция, что одна и та же, как и другая, не подтверждается ни спецификацией языка, ни реализацией; эти две вещи действительно очень разные! Сообщение об ошибке правильное; спецификация языка требует, чтобы выражение было неявно конвертируемым в double ?, что требует, в свою очередь, выражения известного типа. Выражение не имеет известного типа, следовательно, ошибки. –