标签:Nullable C# int 可空 类型 null 装箱
可空类型的来由
举个例子 在电子商务的程序中,如果有一个订单已经下单了,但是还没发货和收获,在描述订单的发货时间和收获时间该怎么表示?在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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。