Classes génériques - problème d'instanciation
Bonjour,
J'essaie de manipuler une classe générique et de l'instancier dans une méthode qui aurait reçu le type par un paramètre.
Le code ci-dessous expose de manière concrète le problème.
Quelqu'un aurait une idée?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
public class GenericTable<T>
{
// cette méthode générique ne sera jamais utilisée, elle sera systématiquement écrasée par les classes héritées
public virtual List<T> list()
{
return new List<T>();
}
}
public class Groupe : GenericTable<Groupe>
{
public override List<Groupe> list()
{
List<Groupe> lst = new List<Groupe>();
// Alimentation de la liste
return lst;
}
}
Dans une méthode d'une classe winform:
{
// cbGroupe est un composant dérivé d'une combobox
// toutes mes combobox sont alimentées à partir d'une classe disposant d'une méthode list
// d'où la constitution des classes ci-dessus
cbGroupe.setProperties("xx", "yy", typeof(Groupe);
}
public void setProperties(string prop1, string prop2, Type t)
{
// Ici, je voudrais appeler la méthode list d'un objet de type t
// les instructions ci-dessous ne fonctionnent pas car je ne peux utiliser t de cette façon
// bien qu'il s'agisse bien du type Groupe
GenericTable<t> obj = new GenericTable<t>();
DataSource = obj.list();
} |