Bonjour,

J'ai une classe abstraite MyAdstract qui contient un certain nombre de propriétés et méthodes, y compris statiques.

J'ai une classe générique MyGeneric<T> where T : MyAbstract

Je souhaite dans des méthodes de MyGeneric appeler des propriétés ou méthodes statiques de T

Par exemple :
Code csharp : 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
 
abstract class MyAdstract
{
    public static string Name = "undefined";
}
 
abstract class MyGeneric<T> where T : MyAdstract
{
    List<T> MaListe;
 
    public MyGeneric()
    {
    }
 
    public string ListeDeQuoi()
    {
        return T.Nom + "s";
    }
}
 
public class Voiture : MyAbstract
{
    public new static string Nom = "Voiture";
}
 
public class Train : MyAbstract
{
    public new static string Nom = "Train ";
}
 
MyGeneric<Voiture> Voitures = new MyGeneric<Voiture>();
 
Console.WriteLine(Voitures.ListeDeQuoi());

Je voudrais récupérer "Voitures" en sortie.

Sauf que dans ListeDeQuoi() monsieur le compilateur veut pas que j'utilise T... C'est un "paramètre de type" et non un "type" qu'il me dit