编程语言
首页 > 编程语言> > C#可空类型

C#可空类型

作者:互联网

可空类型的来由

举个例子 在电子商务的程序中,如果有一个订单已经下单了,但是还没发货和收获,在描述订单的发货时间和收获时间该怎么表示?在C#中值类型是不能为null的,但是在数据库的设计的时候是允许数据库字段设置为null,这样程序就会和数据库的设计存在冲突。为了解决这一问题C# 2.0 中还引入了可空类型,可空类型也是值类型,只是可空类型是包括null的值类型。

可空类型的核心部分是System.Nullable<T>。Nullable<T>是个泛型类型,参数T有个值类型的约束。两个重要的属性 HasValue和Value,HasValue指出是否含有一个真正的值,Value表示这个值。

 

Nullable<T>的装箱和拆箱

Nullable<T>是值类型,将它转化成引用类型的时候就要装箱。如果没有值装箱为空引用,有值则装箱为成T的已装箱的值。

可空类型提供的语法糖

?修饰符

//它俩表示的同一个意思,int?编译后便是System.Nullable的形式
int? i = null;
Nullable<int> t = null;

??  修饰符

int? a = null;
// 下面代码等价于: x=a.HasValue?a.Value:12;
int x = a ?? 12;

 

标签:Nullable,C#,int,可空,类型,null,装箱
来源: https://www.cnblogs.com/frace/p/15980427.html