Nullable 类型,比如常见的“int?” “bool?”
我是最近才发现这个东西的….惭愧….
可能大家遇到过这种情形
数据库有个int型的列,但是却允许空
但在程序里 就有这样一个问题
int型是不能为null的….纠结吧
Nullable就是干这个的
简单介绍下
Nullabe类型可以表示所有基础类型的值,并在其基础上增加了一个null值。
Nullable类型可以有两种方式声明:(Nullable在System命名空间下)
Nullable
T? variable
实际中就是
Nullable
int? i
有一点大家是很愿意见到的,那就是T可以是包含struct在内的任何值类型。(不能是一个引用类型)
Nullable类型的实例包含两个公共(public)的只读(read-only)属性:
HasValue与Value
HasValue是bool类型,当变量包含一个非空(non-null)值的时候它返回true;
Value是一个同基础类型相同的类型。如果HasValue返回true,Value包含一个有意义的值。如果HasValue返回false, 访问Value的操作将会引发一个InalidOperationException的异常。
值得注意的是 任何类型与Nullable比较都是false
更多内容大家参见
http://msdn2.microsoft.com/en-us/library/2cf62fcy.aspx[en]
与
http://www.cnblogs.com/lsp/articles/601580.html[zh-CN]