1. 没有值怎么办?
客户下了一份订单,有订货日期,但尚未发货,但没有发货日期,怎么表述发货日期? C#2以后使用可空类型。
2. 为什么值类型的变量不能是null?
引用类型变量,其值是一个引用,即一个非空引用值提供了访问一个对象 的途径,对于null来说,作为一个特殊值,意味着不引用任何对象。所有引用的默认值都为null,内存中表示全零。
值类型变量,其值是它本身的真实数据。null不是有效的值类型的值。
3. C#1 解决不存在可空值类型
魔值:DateTime,牺牲公元元年中的某个值DateTime.MinValue来表示空值。
引用类型包装:需要进行装箱和拆箱
额外的布尔标志:一般做法是将值和标志封装到另外一个值类型中。
4. System.Nullable<T>和System.Nullable
Nullable<T>是一个泛型类型,T有一个值类型约束,所以不能使用Nullable<Stream>或Nullable<Nullalbe<int>>。其有两个重要属性,HasValue和Value。Nullable<T>仍然是一个值类型。
?修饰符: int? nullable=5;
对可空类型使用as操作符:空值或是有意义的值
C# in Depth Third Edition 学习笔记-- 可空类型,布布扣,bubuko.com
C# in Depth Third Edition 学习笔记-- 可空类型
原文地址:http://www.cnblogs.com/aaronday/p/3867604.html