Подстановочные знаки в общих ограничениях C #

Я знаю, что C # не имеет общих подстановочных знаков и что аналогичный эффект может быть достигнут с помощью общих методов, но мне нужно использовать подстановочный знак в поле и не может работать, если есть способ его кодировать.

List<State<Thing>> list;

void AddToList<T>() where T : Thing {
    list.Add(new State<T>());
}

Конечно, это не работает, потому что добавляемый объект не относится к типу State , это типа State , где T: Thing . Можно ли настроить самый внутренний тип списка, чтобы он был Java-эквивалентом ? Extends Thing , а не просто Вещь ?

9
задан abatishchev 8 December 2011 в 07:20
поделиться