想知道是否有更简单的方法来检查可空的bool是否为真。
我发现自己做了很多像这样的代码变得非常笨重。有没有更快的方法呢?
bool? x = false;
if (x.hasValue && x.Value) ...
似乎必须有一个更干净,更快速的方法来检查真正的
答案 0 :(得分:12)
使用GetValueOrDefault
:
if(x.GetValueOrDefault(false))
您也可以将其与其他类型一起使用。
答案 1 :(得分:5)
if (x == true)
这应该有用,是最短的
答案 2 :(得分:4)
可能很多开发人员对此并不熟悉,但您可以使用null coalesce operator (??),如下所示:
int? x = null;
// Set y to the value of x if x is NOT null; otherwise,
// if x = null, set y to -1.
int y = x ?? -1;
并进行状态检查: -
if (nullableBool ?? false) { ... }
另一个选项是GetValueOrDefault Method
if (nullableBool.GetValueOrDefault(false))
{
}