好奇:
这些行抛出Invalid Cast Exception
:
Unable 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
?
答案 0 :(得分:5)
这就是为什么.net中的每个对象都有ToString()方法(继承自Object)
的原因string str = (obj == null) ? string.Empty : obj.ToString();
答案 1 :(得分:2)
这是一个boxing / unboxing问题。
默认情况下, 20.09089
为double
。如果您要从object
取消装箱原始类型,则需要先将原始类型取消装箱。
Object obj = new object();
obj = 20.09089;
string value = ((double)obj).ToString();
或简化;
Object obj = new object();
obj = 20.09089;
string value = obj.ToString();