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。