Bonjour!

Je travaille à créer une classe un peu spéciale... Voilà ma déclaration (ne compile pas mais ça vous donne une idée de ce que je veux faire)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
public abstract class MachineNetwork<T:Machine> : IList<T>{
    private List<T> innerList = new List<T>();
    ...
    bool Add(T machine){
        if(AllowAdd(machine))
            innerList.Add(machine);
    }
    ...
 
    protected abstract bool AllowAdd(T machine);
}
Donc l'idée c'est de s'assurer que T est ou dérive de la classe Machine. Bien entendu, il serait simple d'effectuer cette vérification dans le constructeur et de lever une exception si nécessaire. Toutefois, le compilateur ne pourrait pas détecter l'erreur. Y a-t-il une façon particulière de déclarer cela?

Merci!!