Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 铸造使用系统.c型#_C#_Casting - Fatal编程技术网

C# 铸造使用系统.c型#

C# 铸造使用系统.c型#,c#,casting,C#,Casting,是否可以使用System.type?作为参考将对象强制转换为所需类型 我进行了一次搜索,但普遍的共识是否定的,尽管我希望C#4.0中引入的一些辅助工具可以帮助我 也就是说,下面的代码不起作用,但伪代码是我想要的 object o = null; var t = typeof(string); ... string foo = (t)o; 编辑:我需要使用XmlSerializer重建/反序列化为t中存储的没有意义的类型 施法根本不会改变对象;它只允许您在编译时使用对象作为给定类型 如果您不知道

是否可以使用
System.type?
作为参考将对象强制转换为所需类型

我进行了一次搜索,但普遍的共识是否定的,尽管我希望C#4.0中引入的一些辅助工具可以帮助我

也就是说,下面的代码不起作用,但伪代码是我想要的

object o = null;
var t = typeof(string);
...
string foo = (t)o;

编辑:我需要使用
XmlSerializer
重建/反序列化为
t

中存储的没有意义的类型

施法根本不会改变对象;它只允许您在编译时使用对象作为给定类型

如果您不知道在编译时将其强制转换为什么类型,则强制转换是无用的,因为它不允许您对强制转换的表达式执行任何操作。

无需强制转换。对象不会改变,当“casting”时,引用(变量)的类型会改变。

我猜您正在寻找类似的对象。如果类型为机具,并且可转换为所需类型(当然,这不是强制转换),则此操作有效。

请查看:

var foo = Convert.ChangeType(o, typeof(string))

您希望
foo
的编译时类型是什么?你到底想达到什么目的?解释更宏观的情况会有很大帮助。如果您尝试编写一个示例用法,您会发现您的问题毫无意义。即使对于XmlSerializer,我也不明白您为什么需要这种类型转换。即使代码不起作用,您是否可以添加一个代码来显示您正在尝试执行的操作?实际上,如果对象实现了“显式”运算符,它可以更改对象。@KooKiz:在运行时不会。只有当编译器知道调用运算符时,才会发生这种情况。