在C#中检查可空的bool是否为真的最快方法是什么?

时间:2014-10-02 12:41:18

标签: c# nullable

想知道是否有更简单的方法来检查可空的bool是否为真。

我发现自己做了很多像这样的代码变得非常笨重。有没有更快的方法呢?

bool? x = false;
if (x.hasValue && x.Value) ...

似乎必须有一个更干净,更快速的方法来检查真正的

3 个答案:

答案 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)) 
{
}