从对象转换为字符串时如何处理null异常?

时间:2014-11-24 13:36:35

标签: c# .net null

好奇:

这些行抛出Invalid Cast ExceptionUnable to cast object of type 'System.Double' to type 'System.String'.

 Object obj = new object();
 obj = 20.09089;
 string value = (string)obj;

我从obj收到library值。

如果在枚举时我们不知道string的类型,如何简单地转换为object

2 个答案:

答案 0 :(得分:5)

这就是为什么.net中的每个对象都有ToString()方法(继承自Object)

的原因
string str = (obj == null) ? string.Empty : obj.ToString();

答案 1 :(得分:2)

这是一个boxing / unboxing问题。

默认情况下,

20.09089double。如果您要从object取消装箱原始类型,则需要先将原始类型取消装箱

Object obj = new object();
obj = 20.09089;
string value = ((double)obj).ToString();

或简化;

Object obj = new object();
obj = 20.09089;
string value = obj.ToString();