これはC#4.0で導入されましたが、C#3.0でこれを実現する方法はありますか?
たとえば、次のコードについて考えてみます。
class Base
{
}
class Derived1 : Base
{
}
class Derived2 : Base
{
}
class User<T> where T : Base
{
}
class User1 : User<Derived1>
{
}
User<T>
ここで、を保存できるUser<Derived1>
リストを作成したいのUser<Derived2>
ですが、次のコードはC#3.0でコンパイルできません。
List<User<Base>> users = new List<User<Base>>();
users.Add(new User1());
何か案は?