C#には汎用ワイルドカードがなく、汎用メソッドでも同様の効果が得られることは承知していますが、フィールドでワイルドカードを使用する必要があり、それをエンコードする方法があるかどうかを判断できません。
List<State<Thing>> list;
void AddToList<T>() where T : Thing {
list.Add(new State<T>());
}
もちろん、追加されるオブジェクトはタイプではなく、タイプState<Thing>であるため、これは機能しませんState<T> where T : Thing。リストの最も内部的なタイプを、? extends Thing単なるJavaではなくJavaと同等になるように調整することは可能Thingですか?