我知道这样的问题已经被问过很多次了。但是我从来没有找到如何检查可空布尔值是否为空的答案。这是我对此的答案:
bool? nullableBool;
if (nullableBool == true){
}else if (nullableBool == false){
}else{
}
但我想知道是否有更好、更直接的方法来减少无用的代码?谢谢。
我知道这样的问题已经被问过很多次了。但是我从来没有找到如何检查可空布尔值是否为空的答案。这是我对此的答案:
bool? nullableBool;
if (nullableBool == true){
}else if (nullableBool == false){
}else{
}
但我想知道是否有更好、更直接的方法来减少无用的代码?谢谢。
if (!nullableBool.HasValue)
{
// null
}
您也可以直接将其与null
.
这不是 nullable bool
,它是未分配的bool
,您的代码将无法编译。您需要使用bool?
或Nullable<bool>
。
bool? nullableBool = null; // or = true or = false
if (nullableBool.HasValue)
{
if (nullableBool.Value)
// true
else
// false
}
else
// null
首先,您使用的 bool 不可为空。要创建可为空的布尔值,您可以执行以下操作:
Nullable<bool> nullableBool;
或速记版本:
bool? nullableBool;
然后可以使用以下方法检查其中任何一个以查看它是否具有值:
if(nullableBool.HasValue)
{
//nullableBool has been assigned a value
}
不推荐您当前的方法。如果您需要可空状态,请使用可空布尔值。如果您想使用标准布尔值,请务必为其分配一个值。我很惊讶您在 Visual Studio 中没有使用该代码出现编译错误。
试试这个请:
if (!nullableBool.HasValue)
{
// your code
}