5、可以为空的值类型int?

来源:互联网 发布:淘宝质量好的牛仔裤 编辑:程序博客网 时间:2024/05/22 03:23

基元类型为空的情况:

1、从数据库中取出一条记录,但是由于某int类型字段没有值,则返回的将是空。这时常常会在代码中加一个判断是否为null,才能将其赋给一个变量。

2、在分布式系统中,服务器接受并解析来自客户端的数据,一个int类型的数据可能在传输过程中丢失或被篡改了,转型失败后应该保存为null,而不是保存为一个初始值。

……

自.NET2.0以后,FCL提供了一个额外的类型:可以为空的Nullable<T> where T:struct。

因为是结构体,所以只有值引用类型才可以作为“可以为空的类型”(引用类型本身可以为null)。如一个可以为空的int类型表示为:int? i=null;


T?是Nullable<T>的简写形式。


可空类型与基元类型的转换:

基元类型可以隐式转换为可空类型,可空类型只能使用如下代码形式转换:

<span style="white-space:pre"></span>int? i=123;<span style="white-space:pre"></span>int j;<span style="white-space:pre"></span>if(i.HasValue)<span style="white-space:pre"></span>{     <span style="white-space:pre"></span>    j=i.Value;<span style="white-space:pre"></span>}<span style="white-space:pre"></span>else<span style="white-space:pre"></span>{     <span style="white-space:pre"></span>    j=0;<span style="white-space:pre"></span>}

或者

<span style="white-space:pre"></span>int j=i??0;

??表示:i如果有Value,则将Value赋给j,如果没有,则将0赋给j;常用于可空类型赋值给基元类型。

0 0
原创粉丝点击