Это было введено в 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());
Есть идеи?