当前位置:  开发笔记 > 编程语言 > 正文

是否可以将变量转换为存储在另一个变量中的类型?

如何解决《是否可以将变量转换为存储在另一个变量中的类型?》经验,为你挑选了2个好方法。

这就是我需要做的事情:

object foo = GetFoo();
Type t = typeof(BarType);
(foo as t).FunctionThatExistsInBarType();

可以这样做吗?



1> GvS..:

您可以使用Convert.ChangeType方法.

object foo = GetFoo(); 
Type t = typeof(string);
string bar = (string)Convert.ChangeType(foo, t);


仅当对象实现IConvertible时,这才有用
我只使用字符串作为例子.问题是我不知道目标类型所以我不能执行这个xyz bar =(xyz)Convert.Change ... cast.

2> Quassnoi..:

你不能.C#没有实现duck typing.

您必须实现一个接口并强制转换为它.

(但是有人试图这样做.看看鸭子打字项目的例子.)


您仍然需要实现接口(在这种情况下为IConvertible),并且事先知道要转换的类型.
推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有