Присвоить bool? болванитьC#

Место общения программистов C#
Anonymous
Присвоить bool? болванить

Сообщение Anonymous »

Рассмотрим следующий код:

Код: Выделить всё

bool x;
bool? y = null;
x = y?? true;
Присвоение логического значения? логическому значению является ошибкой времени компиляции, но приведенный выше код выполняется успешно как во время компиляции, так и во время выполнения. Почему? Хотя третий оператор гарантирует, что мы никогда не присваиваем значение null значению x, в случае, если y не равно нулю, мы все равно присваиваем значение bool? типу bool , значит, это должна быть ошибка с точки зрения компилятора, не так ли?

Или компилятор C# достаточно умен, чтобы обнаружить, что конкретный фрагмент кода не может создать ситуация, когда значению x будет присвоено значение null?

Подробнее здесь: https://stackoverflow.com/questions/200 ... ol-to-bool

Вернуться в «C#»