我找不到在 C# 3.0/.NET 3.5 的泛型构造中使用一流类型对象(System.Type 实例)作为类型参数的方法。下面是我想做的一个简化示例:
public void test()
{
Type someType = getSomeType(); // get some System.Type object
MyGeneric<someType> obj = new MyGeneric<someType>(); // won't compile
}
有什么方法可以将 someType 对象用作泛型的类型参数吗?
最佳答案
您可以动态创建类型的实例:
public void test()
{
Type someType = getSomeType(); // get some System.Type object
Type openType = typeof(MyGeneric<>);
Type actualType = openType.MakeGenericType(new Type[] { someType });
object obj = Activator.CreateInstance(actualType);
}
但是您不能声明这种类型的变量,因为您不知道静态的实际类型。
关于c# - 在 C# 中使用类型对象作为泛型的类型参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1467063/