C#将DateTime的值设为Null

经常有这样的需求:比如客户的生日字段是DateTime类型,在添加客户时,生日可输可不输。


如果没有输生日,在给客户类的生日属性赋值时,

在C#中,将DateTime的值设为Null,即 DateTime birthday = null;

这样程序会在编译时报错,因为DateTime是值类型,而值类型是不能直接等于null的。

那怎么办呢?简单,将生日字段定义为可空类型(.NET2.0的新特性)就行了,

应用泛型的声明方法:
Nullable<DateTime> birthday = null;

一般的方法:
DateTime? birthday = null;


对可空类型取值时,用birthday.Value

判断可空类型是否有值,用 birthday == null 或者 birthday.HasValue()


最后再说明一点

可空类型不可以用三目运算来赋null值,这样也会报错

比如 Nullable<DateTime> birthday = 1==2 ? null : DateTime.Now;

如果想用三目运算也行,改成这样就可以了

Nullable<DateTime> birthday;

birthday = 1==2 ? birthday : DateTime.Now;


可空类型就是包含所定义的数据类型和空值
Tag标签: DateTimeC#基础
posted on 2010-03-25 01:16 发布:水寒冰 阅读(744) 评论(0) 收藏 所属分类: ASP.NET(C#)
  • 评论
  • 点击刷新
  • [使用Ctrl+Enter键可以直接提交]

表情图标

[smile][confused][cool][cry][eek][angry][wink][sweat][lol][stun][razz][redface][rolleyes][sad][yes][no][heart][star][music][idea]
Advertise
Category
Time Counter

离十一还有

Recent Article
Statistics
Recent Comments
Archive
Links
Support
《良机》 鲜果阅读器订阅图标
 
TOP