Initialiser un variable de type Enum

francesdereve Messages postés 75 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 6 août 2007 - 9 mars 2006 à 22:53
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 - 11 mars 2006 à 02:04
J'ai une variable de type enum qui s'appelle TypeA qui contient 10 composants,j'ai une autre variable de type enum qui contient 3 composants.Comment je peux initialiser les Composants de mon typeA {Voiture,Bus,camionnette,etc}avec la premiere valeur du second Enum,le second Enum s'appelle EtatComposant et contient les valeurs suivantes{En marche,en arret,en panne}.Par exemple tous les composants de TypeA doivent etre "en Marche" au demarrage.
Par exemple au demarrage,Voiture doit etre initialisé à En marche,Bus en Marche,camionnette en marche,etc.
Comment le faire en c#.
FD

3 réponses

Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
10 mars 2006 à 03:05
Salut, tu as des variables ou des types Enum !?

Si toutes tes valeurs étaient dans une même Enum tu pourrais utiliser les flags :

[ Flags ]
enum TypeA
{
Voiture = 1,
Bus = 2,
Marche = 4,
Arret = 8
}


TypeA mavoiture = TypeA.Voiture | TypeA.Marche; // mavoiture contient les deux valeurs.

Ou avec une structure :


public struct Vehicule
{
public TypeA type;
public EtatA etat;
}
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
10 mars 2006 à 06:31
malheureusement, ca pose problème ta solution lutinore...

tu mélanges les choux et les carottes :)

par contre la solution de la structure est préférable.


Sébastien FERRAND (
blog)
[Microsoft MVP Visual C#]
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
11 mars 2006 à 02:04
C'est pour coller au plus près de la question que je propose cette solution. C'est sûr que la 2ème soluce est plus élégante mais si j'avais pas mis la première quelqu'un serait passer pour dire qu'on pouvait utiliser les flags : )
0
Rejoignez-nous