Code | Résultat | Remarques |
using System; namespace Exemples { public enum Direction { Nord, Est, Ouest, Sud } [Flags] public enum DirectionByte : byte { Nord=1, Est=2, Ouest=4, Sud=8 } class Enumerations1 { static void Main(string[] args) { Direction murs = Direction.Est; Console.WriteLine(murs); // affiche Est Console.WriteLine((int)murs); // affiche 1 DirectionByte mursByte = DirectionByte.Nord | DirectionByte.Ouest ; Console.WriteLine(mursByte); // affiche Nord, Ouest Console.WriteLine((byte)mursByte); // affiche 5 if ((mursByte & DirectionByte.Nord) != 0) Console.WriteLine("Ne peut pas aller au nord !"); // affiche Ne peut pas aller au nord ! Console.ReadKey(); } } } |
Est 1 Nord, Ouest 5 Ne peut pas aller au nord ! |
L'attribut [Flags] est optionnel et informe l'environnement d'application que les valeurs dans l'énumération peuvent être combinées bit à bit et doivent être décodées en accord avec le débogueur ou lors de sorties de texte sur la console. |
Code | Résultat | Remarques |
using System; namespace Exemples { public enum Bascule : byte { Non = 0, Oui = 1 } class Enumerations2 { static void Main(string[] args) { Type t = Enum.GetUnderlyingType(typeof(Bascule)); Console.WriteLine(typeof(Bascule)); // affiche Exemples.Bascule Console.WriteLine(t); // affiche System.Byte bool bVrai = Enum.IsDefined(typeof(Bascule), "Vrai"); Console.WriteLine(bVrai); // affiche False bool bOui = Enum.IsDefined(typeof(Bascule), "Oui"); Console.WriteLine(bOui); // affiche True Bascule bas = (Bascule)Enum.Parse(typeof(Bascule), "Oui"); Console.WriteLine(bas); // affiche Oui Console.WriteLine(Enum.Format(typeof(Bascule), bas, "D")); // affiche 1; Array ab = Enum.GetValues(typeof(Bascule)); foreach (Bascule bascule in ab) // affiche Non = 0 et Oui = 1 Console.WriteLine("{0} = {1}", bascule, Enum.Format(typeof(Bascule), bascule, "D")); Console.ReadKey(); } } } |
Exemples.Bascule System.Byte False True Oui 1 Non = 0 Oui = 1 |
Voilà des exemples d'utilisation des méthodes statiques de System.Enum. |
Pour plus d'information :
Enum, classe : http://msdn.microsoft.com/fr-fr/library/system.enum.aspx