Généricité et héritage

Signaler
Messages postés
883
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
3 mars 2009
-
Julien237
Messages postés
883
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
3 mars 2009
-
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

Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
35
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()) ;
Messages postés
883
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
3 mars 2009
6
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.