c#中?和??使用

1.?(可空类型修饰符)

背景:当你在定义值类型时,一定要赋值,否则就会出现编译错误,其次为DateTime为空时,返回的并不是空值,而是一个时间。

含义:T? 其实是System.Nullable<T>(泛型结构)的缩写形式,也就意味着当你用到T?时编译器编译  时会把T?编译成System.Nullable<T>的形式。

举例:int? 表示可空的整形,DateTime? 表示可为空的时间。

 

2.??(空合并运算符)

解释:如果此运算符的左操作数不为null,则此运算符将返回左操作数,否则返回右操作数。

例如:a??b 当a为null时则返回b,a不为null时则返回a本身。

 

注意:从数据库中读取带有DateTime数据时,当数据库中为空时,读取出来的DateTime并不是空值,而是一个时间值。此时需要定义类型为:public DateTime?datetime。

posted on 2016-12-13 11:23  水滴石穿—敏  阅读(304)  评论(0编辑  收藏  举报

导航