这已在 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());
有任何想法吗?