如何指示可为空的值';s C#中的原始数据类型

本文关键字:数据类型 原始 指示 何指示 | 更新日期: 2023-09-27 18:00:40

在C#中,是否有类似bool.null的东西来指示这是布尔类型的null值?

感谢

如何指示可为空的值';s C#中的原始数据类型

Boolean是一种值类型。在任何情况下都不能等于null

但是,如果它是Nullable Boolean,您可以直接将其与null进行比较:

bool? b = GetBooleanFromSomeWhere();
if (b == null)
    // It is null

第页。S.不存在"布尔类型的null值"
类没有"自己的null值"。只有null

在C#中,null值仅与引用类型相关。所有未初始化的引用类型的值都为null。然而,值类型的值永远不能为null。它们总是有一个适当的"零"值作为默认值,因此未初始化的bool变量的值为false。点击此处了解更多信息。

然而,在C#2.0中,引入了Nullable类型,用一个可以表示null或实数的结构来包装值类型。所以你可以说bool?相当于你建议的bool.null

长话短说,一个变量可以有一个类型,但当赋值为null时,无法从该值推断出类型。

System.Booleanstruct而不是class,这意味着它不能是null。但是,您可以声明Nullable<Boolean>Boolean?来模拟可为null的值。

bool? myBool = null;
if (myBool.HasValue)
{
 //my bool is not null
 //access its value using myBool.Value
}
else
{
  //my bool is null
}

如果你想了解更多关于不可为null的类型,请查看以下链接:https://msdn.microsoft.com/pt-br/library/1t3y8s4s.aspx

如果您想在代码中装入一个可为null的One,只需在数据类型的末尾添加?,如

int? a = null;
bool? b = null;

像这样:D