是否可以使用System.Type?
作为参考将对象强制转换为所需类型?
我进行了搜索,普遍的共识是否定的,尽管我希望在C#4.0中引入一些可以帮助我的辅助工具。
即。以下内容不起作用,但伪代码是我想要的。
object o = null;
var t = typeof(string);
...
string foo = (t)o;
修改:我需要使用XmlSerializer
重建/反序列化为t
答案 0 :(得分:16)
看看:
var foo = Convert.ChangeType(o, typeof(string))
答案 1 :(得分:3)
这没有意义。
Casting根本不会更改一个对象;它只是让你在编译时使用对象作为给定类型 如果您不知道在编译时将其转换为的类型,则转换是无用的,因为它不会让您对转换表达式执行任何操作。
答案 2 :(得分:1)
无需施法。当“转换”时,对象不会改变,引用类型(变量)会发生变化。
答案 3 :(得分:0)
我猜您正在寻找像System.ChangeType()这样的东西。如果类型为IConvertible类型,并且它可以转换为所需类型(当然这不是强制转换),则此方法有效。