zhouqijie

泛型结构和可空类型

结构也可以是泛型的。它们类似泛型类,只是没有继承的特性。

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)