Я знаю, что C # не имеет общих подстановочных знаков и что аналогичный эффект может быть достигнут с помощью общих методов, но мне нужно использовать подстановочный знак в поле и не может работать, если есть способ его кодировать.
List<State<Thing>> list;
void AddToList<T>() where T : Thing {
list.Add(new State<T>());
}
Конечно, это не работает, потому что добавляемый объект не относится к типу State
, это типа State
. Можно ли настроить самый внутренний тип списка, чтобы он был Java-эквивалентом ? Extends Thing
, а не просто Вещь
?