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

本文关键字:取接口 类型 获取 泛型类型 | 更新日期: 2023-09-27 18:00:32

给出下面的示例代码,有人能解释为什么第一个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
}

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

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

var typeTwo = typeof(ITestMany<,>);