Sous énumération ou type similaire
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 :
Code:
1 2 3 4 5 6
|
public enum fooEnum : int
{
fooA,
fooB,
} |
Maintenant j'aimerais ajouter une (ou des) contrainte(s) supplémentaire(s) :
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 :
Code:
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;
} |
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).
Est-ce la seule option, ou existe-il une autre possibilité ?
Je vous remercie :D