如何创建具有多个泛型类型参数的类型

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 个逗号。即一个逗号表示两种类型参数,两个逗号表示三种类型参数,依此类推。