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();
}