7

给出下面的示例代码,任何人都可以解释为什么第一次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
}
4

1 回答 1

9

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

var typeTwo = typeof(ITestMany<,>);
于 2013-02-21T22:43:45.037 回答