Bonjour à tous,
Je cherche un moyen de mimer le comportement d'une sous-énumération en C#, ou plus exactement d'une énumération hiérarchique.
Pour exposer simplement le problème, imaginons que j'ai une enum comme ceci :
Maintenant j'aimerais ajouter une (ou des) contrainte(s) supplémentaire(s) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public enum fooEnum : int { fooA, fooB, }
fooA ne peut être composé que de : fooA1 et fooA2, tandis que fooB ne peut être composé que de fooBx et fooBy. (toutes ces sous-valeurs étant entières elles aussi).
Dans une méthode quelconque, je pourrais tester les "sous-valeurs" de fooA et fooB comme ceci :
Le problème c'est que ne sais absolument pas comment modéliser cela simplement, c-a-d sans un système (assez) "lourd" à base d'héritage et de valeurs entières constantes (sachant que je ne ferais rien d'autre avec ces valeurs que les tester).
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 if (valueTest == fooEnum.fooA.fooA1) // ... //autre possibilité de test switch(valueTest2) { case fooEnum.fooB.fooBx: // ... break; case fooEnum.fooB.fooBy: // ... break; default: //... break; }
Est-ce la seule option, ou existe-il une autre possibilité ?
Je vous remercie![]()
Partager