给出下面的示例代码,任何人都可以解释为什么第一个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
}
答案 0 :(得分:9)
您需要让编译器知道您正在寻找具有两个通用参数的泛型类型。在尖括号之间添加逗号:
var typeTwo = typeof(ITestMany<,>);