Cela a été introduit en C# 4.0, mais est-il un moyen d'y parvenir en C# 3.0?Existe-t-il un moyen d'obtenir la covariance des types génériques dans C# 3.0?
Pour exemple, considérez le code suivant:
class Base
{
}
class Derived1 : Base
{
}
class Derived2 : Base
{
}
class User<T> where T : Base
{
}
class User1 : User<Derived1>
{
}
Maintenant, je voudrais avoir une liste de User<T>
, dans laquelle je peux stocker User<Derived1>
ainsi que User<Derived2>
, mais le code suivant ne parvient pas à compiler C# 3.0:
List<User<Base>> users = new List<User<Base>>();
users.Add(new User1());
Des idées?
Si vous pouvez y parvenir en C# 3, ils auraient pas eu besoin de l'introduire en C# 4. En outre, il n'y a pas une telle chose comme 3,5 C#. C'est C# 3.0, .NET 3.5. –
@John: Points pris - les deux. : P. Y at-il un travail autour? – nullDev
utiliser F # comme une solution de contournement? :) –