Net Core教程

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;

 

这篇关于C#可空类型的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!