2014-03-25 28 views
0

问号在C#中的具体含义是什么? (例如,有一个bool?数据) 类型名称是否表示空值?在C#中,“?”是什么?类型名称后显示?

+2

它是可空''这意味着它可以让普通的价值观和'null'存储值类型。 – Habib

+1

这表示您不确定是否阅读了语言规范并知道C#;)这就是源代码问您的原因。 – TomTom

+0

@TomTom,用google搜索有点困难,可能是这个原因,OP不知道'Nullable ',我会推荐使用http://symbolhound.com/搜索并查看[布尔? C#'](http://symbolhound.com/?q=bool%3F+C%23) – Habib

回答

5

这是一个可为空的类型。一种可能有价值的类型。

举例来说,如果你声明:

int? a; 

a可能是null或32位整数。

可空类型非常有用,尤其是当我们必须处理从数据库中提取的值时。有时数据库中的列可能包含一个值或可能为空。所以当你从一个可能为null的数据库中获取一个值时,一个可为空的类型将是最合适的。此外,在其他情况下它也是有用的,但这是更经典的一种。

欲了解更多详情请参阅MSDN

1

类型是Nullable<T>其中T是类型名称。它提供了一个包装类,允许您使非空类型实质上支持空值。见MSDNNullable<T>

在代码中,你会评估它是这样的:

bool? b; 
... 
if (b.HasValue) 
{ 
    b.Value; // contains your actual bool t/f value... 
} 
相关问题