一会要陪远道来的朋友出去玩,先挤着时间说说Nullable<T>。
由于数据库中的数字可以为空,C#中的数字不能为空。所以导致了Nullable<T>的存在。
(1)下面简单说说Nullable<T>的使用
Nullable<T>用Nullable<int>实例化,习惯上简写成int?,例如
Nullable<int> x;//即 int? x;
可以通过如下方式获得x的值
Nullable<int> x;
x = 4;
if (x.HasValue) {
int y = x.Value;
}
x = null;
(2)int?与int的转换
int y1 = 4;
int? y2 = y1;
从非可空类型转换为可空类型时,在不需要强制类型转换的地方可以进行隐式转换。
如果y1是空值时,把null值赋予非空类型,就会抛出InvalidOperationException类型的异常。
实际上编译时就会报错,这里就需要做强制转换:
int? y1 = 4;
int y2 = (int)y1;
或者使用接合运算符??,示例如下:
int? y2;
int y1 = y2 ?? 0;

浙公网安备 33010602011771号