如何获得具有多个类型参数的泛型类的类型?- C#

oil*_*lio 14 c# generics

这编译:

public class A<T> {
    public void test() {
        var a = typeof (A<>);
    }
}
Run Code Online (Sandbox Code Playgroud)

这不是:

public class A<T,S> {
    public void test() {
        var a = typeof (A<>);
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到错误:使用泛型类型'A'需要2个类型参数

如何使用两个参数获取对此泛型类型的引用?

Ani*_*Ani 27

你需要的只是一个逗号:

var a = typeof (A<,>);
Run Code Online (Sandbox Code Playgroud)

请注意,这将返回System.Type表示未绑定泛型类型的内容A.由于代码属于属于该类型的方法,因此您可能正在寻找typeof (A<T, S>),具体取决于您的要求.


exp*_*rer 5

使用A <,>而不是A <>