Как получить тип универсального класса с несколькими параметрами типа? - С#
Это компилируется:
public class A<T> {
public void test() {
var a = typeof (A<>);
}
}
Это не означает:
public class A<T,S> {
public void test() {
var a = typeof (A<>);
}
}
Я получаю сообщение об ошибке: использование универсального типа "A" требует 2 аргументов типа
Как получить ссылку на тип этого родового типа с двумя аргументами?
Ответы
Ответ 1
Все, что вам нужно, это запятая:
var a = typeof (A<,>);
Обратите внимание, конечно, что это вернет System.Type
, который представляет несвязанный общий тип A
. Поскольку код находится в методе, принадлежащем типу, вы можете просто искать typeof (A<T, S>)
, в зависимости от ваших требований.
Ответ 2
использовать A <, > не A < >