int? 用的比效少点; 如 String? DateTime? 以前我们用 public DateTime _dateTime { get { return _dateTime; } set { _dateTime=value; } } (_dateTime== null)) ? DateTime.MinValue :(_dateTime) 现在空就是空啊,比较合理;但这样做拆装箱有性能的损失
int?可以表示未初始化的数据 这个在wpf的一些属性里面很常用的
int? 关键字其实是泛型类 Nullable<int> 的简写形式,微软的泛型遇到值类型后有个缺点,就是不能让 T t = null; 这关系到C#一直强调的类型安全,绝对不可以破例让任何 T t = null,所以专门推出了 default(T),代替 Null。Nullable<int> 就算是个衍生产品吧,而它正好迎合了数据库里的整数的要求,数据库里整数都可以是Null的,所以 C# 就加入了大量关键字启用这些可空类型,算是对数据库更好的支持吧,平常日还是用 int 的多,所以觉得它没用,真要是非他不能解决问题的时候,就觉得它有用了
虽然给每个字段设定默认值是个好习惯,但你并不能强迫人这样做
当字段未被赋值的时候,它就是NULL~
如
String?
DateTime?
以前我们用 public DateTime _dateTime
{
get {
return _dateTime;
}
set
{
_dateTime=value;
}
} (_dateTime== null)) ? DateTime.MinValue :(_dateTime)
现在空就是空啊,比较合理;但这样做拆装箱有性能的损失
这个在wpf的一些属性里面很常用的