值类型遇见空值怎么办?
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;}
}
...
}
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;}
}
...
}
相关文章推荐
- ORACLE 中 怎么插入空值(时间类型DATE)
- Object类型的怎么判断空值
- 怎么用socket传送int类型的信息(java)?
- ASP.net对SQL server数据库里取image类型怎么取
- 使用可为空值的数据类型和System.Nullable(Of T)泛型类型
- Python动态类型,怎么判断是输入数据的合法性?
- 从头认识java-12.6 接口与类型信息(怎么绕过接口直接调用类的所有方法)
- SQL学习笔记七函数:数字,日期,类型转换,空值处理,case
- 什么是 NaN,它的类型是什么?怎么测试一个值是否等于 NaN?
- 在vb中怎么引入ADODB类型
- 怎么解决函数的参数值、类型或数目无效?
- 音乐类型是怎么区分的?什么样的才算是摇滚?摇滚应该也是通俗音乐的一种吧?
- java基本数据类型在栈中怎么存放的?
- PDF转CAD文件怎么设置输出类型
- oracle数据库表中,某个字段是varchar2类型的但其实存的是数字,这样安装该字段排序,排出来的顺序是不对的,sql语句怎么写就可以排序了?
- 怎么查询NSLog中每个数据类型对应的占位符
- MySQL中怎么对varchar类型排序问题
- 对于oracle数据库中怎么查看clob类型的值
- TreeSet 存储自定义类型时CompareTo 方法应该怎么写
- iOS 怎么实现监听网络断开和链接上,其次是怎么判断网络的类型??????????