无法使用多个泛型类型获取接口/类的类型?

时间:2013-02-21 22:42:25

标签: c# generics compiler-errors typeof

给出下面的示例代码,任何人都可以解释为什么第一个typeof()调用成功运行但第二个失败?无论它们是类还是接口都无关紧要。

interface ITestOne<T1>
{
   T1 MyMethod();
}

interface ITestMany<T1, T2>
{
   T1 MyMethod(T2 myParameter);
}

void Main()
{
    var typeOne = typeof(ITestOne<>); //This line works
    var typeTwo = typeof(ITestMany<>); //Compile error
}

1 个答案:

答案 0 :(得分:9)

您需要让编译器知道您正在寻找具有两个通用参数的泛型类型。在尖括号之间添加逗号:

var typeTwo = typeof(ITestMany<,>);