heicer 程式备忘录

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

一会要陪远道来的朋友出去玩,先挤着时间说说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;

 

posted on 2009-12-11 16:43  heicer  阅读(186)  评论(0)    收藏  举报