如何在 C# 中将 Cast null 类型转换为 Bool?

How to Type Cast null as Bool in C#?

我有一个可以为 null 的 bool (bool?) 变量,它的值为 null。又一个纯 bool 类型的变量,我试图将可为空的 bool 转换为 bool。但是我遇到了一个错误“可为空的对象必须有一个值。

我的 C# 代码是

bool? x = (bool?) null;
bool y = (bool)x;

如果 x.HasValue == false.

,请使用 x.GetValueOrDefault() 将默认值(System.Booleanfalse)分配给 y

或者您可以使用 null-coalescing 运算符 (??),如下所示:

bool y = x ?? false;

如果我有一个 属性 布尔值

If (HasData.HasValue) Then
            Dim value As Boolean = HasData.Value
        End If
        ' or you can also do this
        If (HasData IsNot Nothing) Then

    End If

这应该可以修复您的错误。

希望这对您有所帮助

使用布尔常量检查是否相等是一个方便的快捷方式:

        var x = (bool?) null;
        var y = x == true;