今天调试程序时 出现了未将对象引用设置到对象实例的错误
最后发现错误的原因是对一个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的情况。