您的位置:首页 > 其它

值类型遇见空值怎么办?

2010-08-16 16:26 218 查看
这个源于一个Model中的日期变量。

Public Class UserModel{
...
private DateTime m_BirthDay;
Public DateTime Birthday{
get{return m_BirthDay;}
set{m_BirthDay=value;}
}
...
}

如果有人在注册的时候不填写,如何表示呢?

DateTime=null

以上代码编译的时候告知,值类型不能直接赋值null。

为什么值类型不能赋值为null呢?这个道理好像还蛮复杂的:参见http://blog.csdn.net/shyleoking/archive/2010/06/03/5643714.aspx

C#为了解决以上问题,增加了一个可空类型System.Nullable<T>,这样就可以解决以上问题。

Public Class UserModel{
...
private Nullable<DateTime> m_BirthDay;
Public Nullable<DateTime> Birthday{
get{return m_BirthDay;}
set{m_BirthDay=value;}
}
...
}

也可以简写如下

Public Class UserModel{
...
private DateTime? m_BirthDay;
Public DateTime? Birthday{
get{return m_BirthDay;}
set{m_BirthDay=value;}
}
...
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: