Я понимаю, что правильный способ обработки типов с нулевым значением - использовать свойство HasValue. Но я хотел бы знать, почему следующий оператор switch разбивается на нулевой случай вместо значения по умолчанию. Использование VS2015 С# 4.0. Другой компьютер, использующий VS2010 С# 4.0, не имеет такой же проблемы.
private void Testing()
{
bool? boolValue = true;
switch (boolValue)
{
case null:
break; //even though value is true, code runs here
default:
break;
}
}
Изменить. Поведение наблюдается с любым Nullable
, если заданы только case Null
и default
.