私は次のようなジェネリッククラスを持っています:
public class Foo<T>
{
public string SomeMethod();
...
}
この型のさまざまなジェネリック インスタンスへの参照のリストを保存したいと考えています。例えば
List<Foo<object>> foos = new List<Foo<object>>();
foos.Add(new Foo<string>());
foos.Add(new Foo<int>());
foos.Add(new Foo<Person>());
// Then do some processing like ...
foreach (var Foo<object> in foos)
{
Console.WriteLine(foo.SomeMethod());
}
etc...
foos.Add 呼び出しでのコンパイラ エラー:
"Cannot convert from 'Foo<string>' to 'Foo<object>'
型が異なるジェネリック型インスタンスのリストを保存するにはどうすればよいですか?
オブジェクトのリスト (ArrayList、List、List など) を格納するだけで、リフレクションを使用してメンバーにアクセスする必要はありません。