C# Enum (Énumération) avec exemple
⚡ Résumé intelligent
En C#, les énumérations définissent un ensemble nommé de valeurs entières constantes, comme les jours de la semaine, ce qui simplifie la lecture et la maintenance du code. Le mot-clé `enum` permet de déclarer ces constantes fixes une seule fois, pour une réutilisation dans tout le programme.

Énumération C#
Une énumération est utilisée dans n'importe quel langage de programmation pour définir un ensemble constant de valeurs. Par exemple, les jours de la semaine peuvent être définis sous forme d'énumération et utilisés n'importe où dans le programme. En C#, l'énumération est définie à l'aide du mot-clé 'enum'.
Voyons un exemple de la façon dont nous pouvons utiliser le mot-clé 'enum'.
Dans notre exemple, nous définirons une énumération appelée jours, qui servira à stocker les jours de la semaine. Pour chaque exemple, nous modifierons uniquement la fonction principale dans notre fichier Program.cs.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { enum Days{Sun,Mon,tue,Wed,thu,Fri,Sat}; static void Main(string[] args) { Console.Write(Days.Sun); Console.ReadKey(); } } }
Code Explication:-
- L'énumération Type de données est spécifié pour déclarer une énumération. Le nom de l'énumération est Days. Tous les jours de la semaine sont spécifiés comme valeurs de l'énumération.
- Enfin la fonction console.write permet d'afficher une des valeurs de l'énumération.
Si le code ci-dessus est saisi correctement et que le programme est exécuté avec succès, la sortie suivante sera affichée.
Sortie :
À partir du résultat, vous pouvez voir que la valeur « Soleil » de l'énumération est affichée dans la console.
Pourquoi utiliser des énumérations en C# ?
Les énumérations rendent un programme plus lisible, plus sûr et plus simple à maintenir. Au lieu de disséminer des nombres non expliqués, parfois appelés nombres magiques, dans le code, une énumération attribue à chaque valeur un nom descriptif qui indique son rôle.
- Lisibilité: Un nom comme Days.Fri est beaucoup plus clair que le chiffre 5, donc toute personne lisant le code en comprend immédiatement la signification.
- Sécurité du type : Une variable déclarée avec un type énuméré ne peut contenir qu'un seul des membres définis, ce qui empêche l'insertion de valeurs invalides.ping dans.
- Maintenabilité: Les constantes associées résident à un seul endroit, de sorte que l'ajout ou le renommage d'une valeur met à jour l'ensemble du programme de manière cohérente.
- Liaison de données : Les frameworks tels que WPF et ASP.NET peuvent lier une énumération à une liste déroulante, ce qui rend les énumérations utiles pour la création d'interfaces utilisateur.
Comme le compilateur vérifie chaque affectation par rapport aux membres autorisés, les énumérations permettent également de détecter les erreurs au plus tôt, avant l'exécution du programme.
Attribution de valeurs personnalisées à une énumération C#
Par défaut, C# attribue la valeur 0 au premier élément d'une énumération et incrémente chaque élément suivant de 1. Dans l'énumération Days ci-dessus, Sun vaut 0, Mon vaut 1 et Sat vaut 6. Vous pouvez modifier ces valeurs par défaut en attribuant des nombres explicites.
- Valeurs explicites : L'écriture de l'énumération Level {Low = 1, Medium = 5, High = 10} attribue à chaque membre un nombre choisi au lieu de la séquence par défaut.
- Travail partiel : Si vous n'attribuez une valeur qu'à certains membres, le compilateur continue la numérotation à partir de la dernière valeur attribuée pour les membres suivants.
- Type sous-jacent : Par défaut, une énumération stocke ses membres sous forme d'entiers (int), mais vous pouvez la baser sur des octets (byte), des entiers courts (short) ou des entiers longs (long) pour économiser de la mémoire ou étendre la plage de valeurs.
Les valeurs personnalisées sont utiles lorsque les nombres doivent correspondre à un système externe, comme des codes de base de données ou des constantes de protocole, afin que l'énumération reflète exactement les données réelles.
Comment convertir les énumérations C# en entiers, chaînes de caractères et indicateurs ?
En C#, il est fréquent de devoir convertir une valeur d'énumération en un autre format, par exemple en la stockant sous forme de nombre ou en la relisant à partir d'un texte. Ces conversions s'effectuent de plusieurs manières standard.
- Énumération vers entier : Une conversion explicite telle que (int)Days.Wed renvoie l'entier sous-jacent, ce qui est utile pour le stockage ou l'arithmétique.
- entier vers énumération : La conversion dans l'autre sens, par exemple (Days)3, transforme un nombre en membre d'énumération correspondant.
- Chaîne de caractères convertie en énumération : Enum.Parse et Enum.TryParse, plus sûr, convertissent un nom tel que « Fri » en membre Days.Fri sans générer d’erreur en cas de texte invalide.
- Énumération vers chaîne de caractères : L'appel de la méthode ToString sur n'importe quel membre renvoie son nom ; ainsi, Days.Sun.ToString() produit « Sun » pour l'affichage ou la journalisation.
- Liste des membres : Les méthodes Enum.GetValues et Enum.GetNames renvoient chaque valeur ou nom, ce qui est utile pour remplir les menus ou valider les entrées.
Lorsqu'une énumération doit représenter une combinaison de choix plutôt qu'un seul, appliquez l'attribut Flags et attribuez à chaque membre une puissance de deux, comme 1, 2, 4 et 8. Vous pouvez ensuite combiner les membres avec l'opérateur OU bit à bit et tester une option spécifique avec la méthode HasFlag.
Ces techniques de conversion permettent à une énumération de passer facilement d'un nom lisible à un nombre stocké, puis à un ensemble de drapeaux combinés.ping Le reste du programme est à la fois sûr et facile à suivre.


