如何在 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.Boolean
的 false
)分配给 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;
我有一个可以为 null 的 bool (bool?
) 变量,它的值为 null。又一个纯 bool
类型的变量,我试图将可为空的 bool 转换为 bool。但是我遇到了一个错误“可为空的对象必须有一个值。”
我的 C# 代码是
bool? x = (bool?) null;
bool y = (bool)x;
如果 x.HasValue == false
.
x.GetValueOrDefault()
将默认值(System.Boolean
的 false
)分配给 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;