Is there a way to achieve covariance of generic types in C# 3.0?
Posted
by nullDev
on Stack Overflow
See other posts from Stack Overflow
or by nullDev
Published on 2010-04-05T13:21:58Z
Indexed on
2010/04/05
13:43 UTC
Read the original article
Hit count: 303
This has been introduced in C# 4.0, but is there a way to achieve this in c# 3.0?
For e.g., consider the following code:
class Base
{
}
class Derived1 : Base
{
}
class Derived2 : Base
{
}
class User<T> where T : Base
{
}
class User1 : User<Derived1>
{
}
Now, I would like to have a list of User<T>
, in which I can store User<Derived1>
as well as User<Derived2>
, but the following code fails to compile in C# 3.0:
List<User<Base>> users = new List<User<Base>>();
users.Add(new User1());
Any ideas?
© Stack Overflow or respective owner