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
ですか?