如何指示可为空的值';s C#中的原始数据类型
本文关键字:数据类型 原始 指示 何指示 | 更新日期: 2023-09-27 18:00:40
在C#中,是否有类似bool.null的东西来指示这是布尔类型的null值?
感谢
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.Boolean
是struct
而不是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