如题我做判断判断为空会报未将对象引用到实例 改成null就可以了 为什么?求高手指点?明白null与string.empty的区别 不明白我这样为什么不对

解决方案 »

  1.   

    string.empty相当于"",和null不同。你可以用string.IsNullOrEmpty()一次判断两样哦。喵~
      

  2.   

    string.empty -> “”string.empty 与 null 不是一个意思用卡来打比方就是 一个有卡没钱,另一个没有卡
      

  3.   

     
    null是C#关键字,是表示不引用任何对象的空引用的文字值。null 是引用类型变量的默认值。那么也只有引用型的变量可以为NULL,如果 int i=null,的话,是不可以的,因为Int是值类型的。string.Empty就相当于"", 他俩和NULL是两码事。
      

  4.   

    判断是否为空应该用String.IsNullOrEmpty(string),
      

  5.   

    String.Empty,NULL和""的区别string.Empty与"",null的区别
      

  6.   

    你的程序报错,是因为mdlProPTMem.Year等于null,!=是String重载的一个运算符,相当于调用方法:mdlProPTMem.Year.operator!=(string.empty);如果mdlProPTMem.Year为null,则会空指针错误,如果你直接和null比较,c#编译器会自动判断mdlProPTMem.Year为null的话比较引用,因为null是常数,string.empty不是常数,
      

  7.   

    那为什么我从数据库中取值ds.Tables[0].Rows[i][8].ToString() != ""这样判断又是可以的
      

  8.   

    ds.Tables[0].Rows[i][8]不可能等于null,ToString方法不会返回null,一般来说数据库中如果某个字段为空,那么DataTable里相应的值是DBNull.Value,是一个DBNull类的实例,不是null,所以ds.Tables[0].Rows[i][8].ToString()不会等于null,