這已經在C#4.0中引入了,但是有沒有辦法在c#3.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());
任何想法?
如果你可以在C#3中實現它,他們不需要在C#4中引入它。此外,沒有C#3.5這樣的東西。它是C#3.0,.NET 3.5。 – 2010-04-05 13:36:21
@John:積分 - 他們兩人。 :P。有沒有解決方法? – nullDev 2010-04-05 13:39:15
使用F#作爲解決方法? :) – 2010-04-05 13:43:37