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

时间:2015-03-05 10:48:01

标签: c# generics

我已经搜索了一段时间,仍然无法找到我的问题的答案,而是找到了使用多个Generic Type参数制作通用方法的答案。

所以,这是我的问题。我有一个接口IMyInterface<T1, T2>,我想将其创建为Type。目前我可以像这样创建IMyInterface<T>的类型:

Type type = typeof(IMyInterface<>).MakeGenericType(genericTypeForMyInterface) 

非常感谢任何协助。

谢谢:)

1 个答案:

答案 0 :(得分:8)

MakeGenericTypeparams Type[]作为参数,用于构造泛型类型。这意味着您可以传递任意数量的参数。

所以你可以简单地做

Type type = typeof(IMyInterface<,>).MakeGenericType(type1, type2);

请注意,对于具有多个泛型类型参数的类型,角括号之间需要逗号(,)。 (n)类型参数需要n-1个逗号。即一个逗号用于两个类型参数,两个逗号用于三个类型参数,依此类推。