如何创建具有多个泛型类型参数的类型
How do I create a Type with multiple generic type parameters
我已经搜索了一段时间,但仍然无法找到问题的答案,而是找到了使用多个通用类型参数制作通用方法的答案。
所以,这是我的问题。我有一个接口 IMyInterface<T1, T2>
,我想将它创建为一个类型。目前我可以像这样为 IMyInterface<T>
创建类型:
Type type = typeof(IMyInterface<>).MakeGenericType(genericTypeForMyInterface)
如有任何帮助,我们将不胜感激。
谢谢:)
MakeGenericType takes params Type[] 作为将用于构造泛型类型的参数。这意味着您可以传递任意数量的参数。
所以你可以简单地做
Type type = typeof(IMyInterface<,>).MakeGenericType(type1, type2);
请注意,对于具有多个泛型类型参数的类型,angular 括号之间需要一个逗号 (,)。 (n) 类型参数需要 n-1 个逗号。即一个逗号表示两种类型参数,两个逗号表示三种类型参数,依此类推。
我已经搜索了一段时间,但仍然无法找到问题的答案,而是找到了使用多个通用类型参数制作通用方法的答案。
所以,这是我的问题。我有一个接口 IMyInterface<T1, T2>
,我想将它创建为一个类型。目前我可以像这样为 IMyInterface<T>
创建类型:
Type type = typeof(IMyInterface<>).MakeGenericType(genericTypeForMyInterface)
如有任何帮助,我们将不胜感激。
谢谢:)
MakeGenericType takes params Type[] 作为将用于构造泛型类型的参数。这意味着您可以传递任意数量的参数。
所以你可以简单地做
Type type = typeof(IMyInterface<,>).MakeGenericType(type1, type2);
请注意,对于具有多个泛型类型参数的类型,angular 括号之间需要一个逗号 (,)。 (n) 类型参数需要 n-1 个逗号。即一个逗号表示两种类型参数,两个逗号表示三种类型参数,依此类推。