使用系统进行铸造.类型- c#
本文关键字:类型 系统 | 更新日期: 2023-09-27 18:17:14
是否可以使用System.Type?
作为引用将对象强制转换为所需的类型?
我搜索了一下,普遍的共识是没有,尽管我希望c# 4.0中可能会引入一些帮助,可以帮助我。
。下面的代码不能工作,但是伪代码是我想要的。
object o = null;
var t = typeof(string);
...
string foo = (t)o;
编辑:我需要使用XmlSerializer
来重构/反序列化到存储在t
中的类型
看一下:
var foo = Convert.ChangeType(o, typeof(string))
这没有意义。
强制转换不会改变对象;它只允许您在编译时将对象用作给定类型。如果在编译时不知道要将其转换为的类型,则强制转换是无用的,因为它不会让您对强制转换的表达式做任何事情。
无需强制转换。对象没有改变,你的引用类型(变量)在"强制转换"时改变了。
我猜您正在寻找类似System.ChangeType()的东西。如果类型实现了IConvertible,并且它可以转换为所需的类型(当然这不是强制类型转换)