aser911

ToString 未将对象引用设置到对象的实例

 

今天调试程序时 出现了未将对象引用设置到对象实例的错误

最后发现错误的原因是对一个string 变量使用ToString方法 而这个变量的值为null

当某个没有值的时候 使用ToString将提示“使用了未赋值变量“,可偏偏string可以被赋值为null

如果这个时候又恰巧对string使用了ToString()方法 就出现了这个隐蔽的错误。


null 关键字是表示不引用任何对象的 null 引用的文字值。null 是引用类型变量的默认值。普通值类型不能为 null。

但是,C# 2.0 引入了可以为 null 值的类型。请参见可空类型(C# 编程指南)。

int? test=null    //是可以
string res=test.ToString() //结果为""

但string? test=null;这种定义是不可以的
将提示 string必须是不可为空的类型才能用作泛型类型或方法"System.Nullable<T>"中的参数T

所以可空类型 实际上是作为泛型的参数

总之 对于引用类型使用ToString()等方法时 要考虑null的情况。

posted on 2009-12-29 14:38 aser 阅读(522) 评论(0)  编辑 收藏 引用 所属分类: .Net

只有注册用户登录后才能发表评论。