Généricité et héritage

Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 - 3 mars 2009 à 11:05
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 - 3 mars 2009 à 11:25
Hello,
Une petite question à propos des classes génériques :
Comment généraliser le type d'une classe générique en ne prenant pas compte du paramètre générique ?

Par exemple si j'ai une classe générique MyGeneric<T>, comment puis-je déclarer un tableau de MyGeneric pour des T quelconques, par exemple :
MyGeneric[] array = new MyGeneric[] (new MyGeneric(), new MyGeneric<double>());

Est-ce possible ?
Ou dois-je obligatoirement faire dériver MyGeneric<T> de MyClass qui comprendrait tous les membres "non-génériques" ?

Julien.

2 réponses

krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
3 mars 2009 à 11:23
Salut

Une solution très simple, c'est de faire une collection de <System.Object>, tous les objets en dérivant forcément.

Krimog :
while (!succeed = try()) ;
0
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
3 mars 2009 à 11:25
Moui d'accord, mais ça ne change pas grand chose, lorsque je veux utiliser les membres de cette collection, je dois faire des casts en MyGeneric<T>, sans connaitre le T, je ne sais donc pas faire les cast, et pas utiliser les membres "non-génériques" de MyGeneric...

J'ai finalement adopté la solution de faire dériver MyGeneric<T> de MyGeneric (sans <T>) qui implémente toutes les méthodes "non-génériques"...

Julien.
0
Rejoignez-nous