如何在C#中键入Cast null作为Bool

本文关键字:Cast null 作为 Bool | 更新日期: 2023-09-27 18:28:47

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

我的C#代码是

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

如何在C#中键入Cast null作为Bool

x.HasValue == false的情况下,使用x.GetValueOrDefault()将默认值(false用于System.Boolean)分配给y

或者,您可以使用空合并运算符(??),如下所示:

bool y = x ?? false;

用布尔常量检查相等性是一种方便的快捷方式:

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

如果我有一个属性布尔

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

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

希望这对有帮助