泛型结构和可空类型
结构也可以是泛型的。它们类似泛型类,只是没有继承的特性。
dotNET的一个重要泛型结构是Nullable<T>
。它的作用是解决值类型不能为null的问题。很多时候需要值类型的变量为空,例如数据库和XML数据映射。
可空类型的简化语法
由于可空类型使用非常频繁,所以C#由一种特殊语法定义可空类型:
Nullable<int> num1;
int? num2;
//num1和num2都是可空类型
可空类型的转换
非可空类型可以转换为可空类型,可以进行隐式转换。
int num1 = 1;
int? num2 = num1;
从可空类型转换为非可空类型可能会失败,可以进行显式转换或者合并运算符。
int? num1 = GetNullableType();
int num2 = (int)num1;
int num3 = num1 ?? 0;
(END)