这段代码很简单,只是一个普通的开关:
bool? isSomething = strSomething switch
{
"I" => true,
"D" => false,
_ => null,
};
但是,编译器给了我以下错误:
CS0037 无法将 null 转换为“布尔”,因为它是不可为空的值类型
该变量显然是一个可为空的 bool bool?
,为什么 c# 编译器不能在我不必强制转换 null 以使其工作的情况下解决这个问题:
_ => (bool?)null,
我没有做对吗?演员不是不必要的吗?