【发布时间】:2010-09-23 16:39:44
【问题描述】:
我的场景应该很简单...我要转换的类型 FROM 是 ALWAYS 'string'。我想转换成... 可能是很多东西 - 整数、日期时间、... 字符串等。
这很容易:
string valueToConvertFrom = "123";
int blah = Convert.ToInt32(valueToConvertFrom);
但是...我不知道(直到运行时)我需要转换为的值是“Int”(或其他)。我试过这个:
string valueToConvertFrom = "123";
Type convertToType = typeof(int);
object blah = Convert.ChangeType(valueToConvertFrom, convertToType);
但这给了我以下错误:“对象必须实现 IConvertible。”
我不想执行 switch 语句并根据类型名称调用“Convert.ToBlah”...有什么建议吗?
【问题讨论】:
-
请重新打开并添加您找到的答案,以防其他人将来遇到相同或类似的问题
-
我关闭它的原因是因为我的代码中有一个错误......我最初是从错误的字段中提取的,并且该字段没有实现 IConvertible。两个答案+1...“字符串类实现IConvertible,此代码应该可以工作”这是真的。但是 Asher 的解决方案很棒,因为我学到了一些新东西(而且这是一个非常干净的解决方案)。再次感谢!
标签: .net reflection runtime type-conversion