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 : Sélectionner tout - Visualiser dans une fenêtre à part
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(); }
Partager