我知道 C# 没有通用通配符,并且可以通过通用方法实现类似的效果,但是我需要在字段中使用通配符,并且无法确定是否有任何方法对其进行编码。
List<State<Thing>> list;
void AddToList<T>() where T : Thing {
list.Add(new State<T>());
}
当然,这不起作用,因为要添加的对象不是 type State<Thing>
,而是 type State<T> where T : Thing
。是否可以将列表的最内部类型调整为 Java 等价物? extends Thing
而不仅仅是Thing
?