相关疑难解决方法(0)

如何在运行时转换类型?

我的方案应该是简单的...我想要转换的类型FROMALWAYS "字符串".我想要转换为...可能是很多东西 - 整数,日期时间,...字符串等.

这很容易:

string valueToConvertFrom = "123";

int blah = Convert.ToInt32(valueToConvertFrom);
Run Code Online (Sandbox Code Playgroud)

但是......我不知道(直到运行时)我需要转换为的值是'Int'(或其他).我试过这个:

string valueToConvertFrom = "123";

Type convertToType = typeof(int);

object blah = Convert.ChangeType(valueToConvertFrom, convertToType);
Run Code Online (Sandbox Code Playgroud)

但这给了我以下错误:"对象必须实现IConvertible."

我不想做一个switch语句并根据类型名称调用"Convert.ToBlah"...任何建议?

.net reflection runtime type-conversion

21
推荐指数
3
解决办法
1万
查看次数

是否有CTypeDynamic的C#版本?

从文档:

CTypeDynamic方法根据对象本身定义的转换语义应用动态转换.如果动态对象继承自DynamicObject,则CTypeDynamic方法首先尝试使用用户定义的静态转换来执行转换.如果用户定义的静态转换失败,CTypeDynamic方法将尝试使用动态转换执行转换.如果动态对象实现IDynamicMetaObjectProvider,则CTypeDynamic方法优先于用户定义的静态转换的动态转换.

C#中有什么东西可以做到这一点吗?或者我只需导入具有它的VB库.

c# vb.net dynamic .net-4.0

5
推荐指数
1
解决办法
1863
查看次数

标签 统计

.net ×1

.net-4.0 ×1

c# ×1

dynamic ×1

reflection ×1

runtime ×1

type-conversion ×1

vb.net ×1