繁体   English   中英

如何在C#中指示可空值的原始数据类型

[英]How to Indicate a Nullable Value's Original Data Type in C#

是否有类似bool.null的内容指示这是C#中布尔类型的null值?

谢谢

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

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

bool? b = GetBooleanFromSomeWhere();

if (b == null)
    // It is null

PS没有“布尔类型的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? 模拟可为空的值。

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

如果您想了解更多可空类型,请查看以下链接: https ://msdn.microsoft.com/pt-br/library/1t3y8s4s.aspx

如果您想在代码上创建一个空的One,只需添加? 到这样的数据类型的末尾

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

像这样:D

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM