我意识到处理可空类型的正确方法是使用HasValue属性.但我想知道为什么以下switch语句在null case而不是default上打破.使用VS2015 C#4.0.另一台使用VS2010 C#4.0的计算机没有同样的问题.
private void Testing()
{
bool? boolValue = true;
switch (boolValue)
{
case null:
break; //even though value is true, code runs here
default:
break;
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:使用任何Nullableif仅指定行为,case Null并且default指定行为.