Nullable 类型,比如常见的“int?” “bool?”

作者: harde 分类: DotNet 发布时间: 2010-05-28 12:26

我是最近才发现这个东西的….惭愧….

可能大家遇到过这种情形
数据库有个int型的列,但是却允许空
但在程序里 就有这样一个问题
int型是不能为null的….纠结吧
Nullable就是干这个的

简单介绍下
Nullabe类型可以表示所有基础类型的值,并在其基础上增加了一个null值。
Nullable类型可以有两种方式声明:(Nullable在System命名空间下)
Nullable variable
T? variable
实际中就是
Nullable i
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]

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注