Код: Выделить всё
short? cTestA;
if (cTestA == null) { ... }
Код: Выделить всё
short? CS$0$0001 = cTestA;
int? CS$0$0002 = CS$0$0001.HasValue ? new int?(CS$0$0001.GetValueOrDefault()) : null;
if (!CS$0$0002.HasValue){ ... }
Что мне здесь не хватает? В чем причина такого двойного преобразования только для проверки HasValue?
Дальнейшие действия
Чего я ожидаю компилятору нужно выполнить простую проверку с помощью .HasValue, если (cTestA.HasValue){}. По крайней мере, именно это я делаю в своем коде после того, как обнаружил это преобразование.
Почему для такого простого теста добавляется весь этот дополнительный код?
Подробнее здесь: https://stackoverflow.com/questions/921 ... -with-null