Nullable<T>、?、??

在使用MVC开发时,使用了EF进行数据库和model间的映射。发现生成的model代码中有Nullable,对应的数据库字段则是可空的。在利用model赋值时,如果字段被赋值了null,则可以通过。如果不小心删除Nullable,则在给字段赋null时就会出错。也可以使用?代替Nullable。
Nullable是.NET 2.0中新提供的一种用于标明一个值类型是否可以为空的技术。
int?:表示可空类型,就是一种特殊的值类型,它的值可以为null
用于给变量设初值得时候,给变量(int类型)赋值为null,而不是0
int??:用于判断并赋值,先判断当前变量是否为null,如果是就可以赋设个新值,否则跳过
public int? a=null
public int b() { return this.a ?? 0; }
int? num = null;   正确 int num = null;     错误
posted @ 2012-09-01 20:18  永动机  阅读(2845)  评论(0)    收藏  举报