不明白 int? 这种类型有什么实际用处,没错可以让值类型赋值为null,但是,我想知道,有什么实际应用,非用到她 不可吗?

解决方案 »

  1.   

    表示未初始化数据,因为int默认值0可能被误认为有效数据~
      

  2.   

    因为有些时候还需要传递一个 有/无,指定了/没指定,,之类的信息.以前没有int?的时候 , 通常是用  -1 表示特殊情况的. 现在有了 int? , 就比较明确了.
      

  3.   

    一般是为了与数据库相对应把,因为数据库中的整形字段是可以为NULL的
    虽然给每个字段设定默认值是个好习惯,但你并不能强迫人这样做
    当字段未被赋值的时候,它就是NULL~
      

  4.   

    用int 就是定义一个变量吧```你要用int类型的变量就定义啊 其他还有什么特殊用处么``
      

  5.   

    int?  用的比效少点;

    String?
    DateTime?  
    以前我们用 public DateTime _dateTime
    {
     get {
        return _dateTime;
       }
     set 
      {
       _dateTime=value;
      }
    } (_dateTime== null)) ? DateTime.MinValue :(_dateTime)
    现在空就是空啊,比较合理;但这样做拆装箱有性能的损失
      

  6.   

    int?可以表示未初始化的数据
    这个在wpf的一些属性里面很常用的
      

  7.   

    int? 关键字其实是泛型类 Nullable<int> 的简写形式,微软的泛型遇到值类型后有个缺点,就是不能让 T t = null; 这关系到C#一直强调的类型安全,绝对不可以破例让任何 T t = null,所以专门推出了 default(T),代替 Null。Nullable<int> 就算是个衍生产品吧,而它正好迎合了数据库里的整数的要求,数据库里整数都可以是Null的,所以 C# 就加入了大量关键字启用这些可空类型,算是对数据库更好的支持吧,平常日还是用 int 的多,所以觉得它没用,真要是非他不能解决问题的时候,就觉得它有用了