【发布时间】:2017-04-17 14:49:23
【问题描述】:
我在使用动态类型来实例化自定义类时遇到问题。 例如,我有以下课程:
public class myClass<T>
{
public myClass(String header);
}
如果我使用以下代码,一切正常:
var myInstance = new myClass<int>("myHeader");
但是,我没有定义 int 类型,因此我需要从泛型类型参数动态转换它。到目前为止我尝试了什么:
1.
Type myType = typeof(int);
var myInstance = new myClass<myType>("myHeader");
2.
int myInt = 0;
Type myType = myInt.GetType();
var myInstance = new myClass<myType>("myHeader");
在所有示例中,我都收到以下错误:
找不到类型或命名空间名称“myType”(您是否缺少 using 指令或程序集引用?)
我不能直接使用int 的原因是因为我在运行时从特定程序集中加载类型,所以它们不会一直是“int”。
【问题讨论】:
-
你能把函数变成通用的,然后就做
new myClass<T>("myHeader");吗? -
感谢 Quantic,这对我也有帮助。
标签: c# .net dynamic types casting