DTeK Learn logo

Tout savoir sur les énumérations C#

08/11/2023

Les énumérations sont des structures de données essentielles en C# qui permettent aux développeurs de définir des listes nommées de constantes spécifiques. Ces énumérations apportent de nombreux avantages en termes de lisibilité, de maintenabilité et de robustesse du code. Explorons en détail ce qu’est une énumération en C# et comment l’utiliser efficacement.

jeune développeur en reconversion professionnelle sur son ordinateur à son bureau

1. Qu’est-ce qu’une énumération ?

En C#, une énumération est une structure de données qui permet aux développeurs de définir un ensemble nommé de constantes symboliques ayant des valeurs entières associées. Elle offre une manière claire et lisible de représenter des valeurs discrètes et spécifiques dans le code source.

1.1 Déclaration d’une énumération

Pour créer une énumération en C#, on utilise le mot-clé enum. Voici la syntaxe de base pour déclarer une énumération :

// enum NomDeLEnumeration {
    Constante1,
    Constante2,
    Constante3
}

// Exemple :
enum JoursDeLaSemaine {
    Lundi,
    Mardi,
    Mercredi,
    Jeudi,
    Vendredi,
    Samedi,
    Dimanche
}

Dans cet exemple, nous avons créé une énumération appelée JoursDeLaSemaine avec sept constantes symboliques correspondant aux jours de la semaine.

 

1.2 Attribution des valeurs sous-jacentes

Par défaut, chaque constante d’une énumération reçoit une valeur sous-jacente qui correspond à un entier. Les valeurs sous-jacentes sont attribuées automatiquement, en commençant par 0 et en augmentant de 1 pour chaque constante dans l’ordre de déclaration.

enum Mois {
    Janvier, // 0
    Février, // 1
    Mars, // 2
    Avril, // 3
    Mai, // 4
    Juin, // 5
    Juillet, // 6
    Août, //
    Septembre, // 8
    Octobre, // 9
    Novembre, // 10
    Décembre // 11
}

Tu peux néammoins attribuer des valeurs sous-jacentes personnalisées aux constantes en spécifiant explicitement une valeur lors de la déclaration.

enum Status {
    Inactif = 0,
    Actif = 1,
    Suspendu = 2
}

Dans cet exemple, nous avons attribué des valeurs sous-jacentes explicites à chaque constante.

 

1.3 Énumérations avec types de données différents

Les valeurs sous-jacentes par défaut sont de type int, mais tu peux utiliser n’importe quel type de données numériques intégral pour les valeurs sous-jacentes, tels que byte, short, int, long, etc.

enum Tailles : byte {
    Petit = 1,
    Moyen = 2,
    Grand = 3
}

Dans cet exemple, nous avons spécifié que les valeurs sous-jacentes de l’énumération Tailles seront de type byte.

 

1.5 Utilisation des énumérations

Les énumérations sont principalement utilisées pour représenter un ensemble restreint de valeurs qui sont liées conceptuellement dans le contexte d’une application. Au lieu d’utiliser des nombres arbitraires pour représenter ces valeurs, les énumérations offrent des noms symboliques significatifs, ce qui rend le code plus lisible, plus compréhensible et moins sujet aux erreurs.

Une fois que tu as défini une énumération, tu peux l’utiliser pour déclarer des variables, passer des paramètres de méthode et retourner des valeurs de méthode.

enum JoursDeLaSemaine {
    Lundi,
    Mardi,
    Mercredi
}

// Déclaration de variables de type énumération
JoursDeLaSemaine jour = JoursDeLaSemaine.Mardi;

// Passage de paramètres de méthode
void AfficherJour(JoursDeLaSemaine jour) {
    Console.WriteLine(jour);
}

AfficherJour(JoursDeLaSemaine.Mercredi);

Dans cet exemple, nous avons déclaré une énumération JoursDeLaSemaine et utilisé cette énumération pour déclarer une variable jour et passer un paramètre de méthode AfficherJour.

 

1.6 Avantages des énumérations

Lisibilité accrue : Les énumérations utilisent des noms explicites pour représenter des valeurs, ce qui rend le code plus lisible et compréhensible.

Sécurité au niveau des types : Les énumérations sont des types de données distincts, ce qui signifie qu’un compilateur C# émettra une erreur si tu essaies d’assigner une valeur incorrecte à une variable d’énumération.

Facilité de maintenance : En utilisant des énumérations, tu peux facilement ajouter de nouvelles constantes sans affecter le reste du code.

Autocomplétion et aide contextuelle : Microsoft Visual Studio et d’autres IDE offrent une aide contextuelle et une autocomplétion pour les énumérations, facilitant ainsi leur utilisation.

2. Manipulation des énumérations en C#

Une fois que tu as déclaré une énumération en C#, tu peux la manipuler de différentes manières pour obtenir ou traiter les valeurs sous-jacentes associées aux constantes. Nous allons explorer les différentes façons de manipuler les énumérations en C#.

2.1 Conversion d’une valeur d’énumération en chaîne de caractères

Tu peux convertir une valeur d’énumération en une chaîne de caractères à l’aide de la méthode Enum.ToString() ou de l’opérateur ToString().

enum JoursDeLaSemaine {
    Lundi,
    Mardi,
    Mercredi,
    // …
}

JoursDeLaSemaine jour = JoursDeLaSemaine.Mardi;

string jourEnChaine = jour.ToString(); // Résultat : « Mardi »

2.2 Conversion d’une chaîne de caractères en valeur d’énumération

Tu peux également convertir une chaîne de caractères en une valeur d’énumération à l’aide de la méthode Enum.Parse().

string jourEnChaine = « Mercredi »;

JoursDeLaSemaine jour = (JoursDeLaSemaine)Enum.Parse(typeof(JoursDeLaSemaine), jourEnChaine);

2.3 Vérification de l’existence d’une constante dans une énumération

Tu peux vérifier si une valeur donnée correspond à une constante définie dans l’énumération à l’aide de la méthode Enum.IsDefined().

enum Nombres {
    Un = 1,
    Deux = 2,
    Trois = 3
}

Nombres nombre = Nombres.Deux;
int valeurEntiere = (int)nombre; // Résultat : 2

2.4 Conversion d’un entier en valeur d’énumération

Tu peux également convertir un entier en une valeur d’énumération à l’aide d’un cast explicite.

int valeurEntiere = 3;
Nombres nombre = (Nombres)valeurEntiere; // Résultat : Nombres.Trois

2.5 Parcourir les constantes d’une énumération

Tu peux parcourir toutes les constantes définies dans une énumération à l’aide de la méthode Enum.GetValues().

foreach (Nombres nombre in Enum.GetValues(typeof(Nombres))) {
    Console.WriteLine(nombre);
}

Cela affichera toutes les constantes de l’énumération Nombres : Un, Deux et Trois.

 

2.6 Opérations mathématiques avec des énumérations

Les énumérations sont basées sur des types numériques, ce qui signifie que tu peux effectuer des opérations mathématiques avec elles.

enum Jours {
    Lundi,
    Mardi,
    Mercredi,
    // …
}

Jours jour = Jours.Mardi;
jour += 2; // jour vaut maintenant Mercredi

3. Cas d’Utilisation Réels des Énumérations en C#

Les énumérations en C# sont largement utilisées dans des cas pratiques pour représenter des ensembles de valeurs spécifiques dans le code. Voici quelques cas d’utilisation réels où les énumérations se révèlent très utiles :

1. Jours de la semaine : L’une des utilisations les plus courantes des énumérations est de représenter les jours de la semaine. Cela permet de simplifier le code en utilisant des noms symboliques plutôt que des entiers pour représenter les jours.

enum JoursDeLaSemaine {
    Lundi,
    Mardi,
    Mercredi,
    Jeudi,
    Vendredi,
    Samedi,
    Dimanche
}
JoursDeLaSemaine jour = JoursDeLaSemaine.Mardi;

2. États de commande : Lors de la mise en œuvre d’un système de gestion de commandes, les énumérations peuvent être utilisées pour représenter les différents états de commande tels que « En attente », « En cours de traitement » et « Livré ».

enum EtatsCommande {
    EnAttente,
    EnCoursDeTraitement,
    Livre
}
EtatsCommande etat = EtatsCommande.EnCoursDeTraitement;

3. Niveaux d’accès utilisateur : Pour gérer les niveaux d’accès dans une application, les énumérations peuvent être utilisées pour représenter les différents rôles d’utilisateur tels que « Admin », « Modérateur » et « Utilisateur ».

enum NiveauxAcces {
    Utilisateur,
    Modérateur,
    Admin
}
NiveauxAcces niveauAcces = NiveauxAcces.Admin;  

4. Options de menu : Lors de la création d’une interface utilisateur, les énumérations peuvent être utilisées pour représenter les différentes options de menu disponibles.

enum OptionsMenu {
    Nouveau,
    Ouvrir,
    Enregistrer,
    Quitter
}
OptionsMenu optionSelectionnee = OptionsMenu.Ouvrir;

5. Types de fichiers : Les énumérations peuvent être utilisées pour représenter les différents types de fichiers gérés par une application.

enum TypesFichier {
    Texte,
    Image,
    Audio,
    Vidéo
}
TypesFichier typeFichier = TypesFichier.Image;

6. Statuts de connexion : Les énumérations peuvent être utilisées pour représenter les différents statuts de connexion d’un utilisateur dans une application.

enum StatutsConnexion {
    Déconnecté,
    EnLigne,
    Occupé,
    Invisible
}
StatutsConnexion statutConnexion = StatutsConnexion.EnLigne;

7. Priorités de tâches : Lors de la gestion de tâches dans une application, les énumérations peuvent être utilisées pour représenter les différentes priorités de tâches telles que « Haute », « Normale » et « Basse ».

enum PrioritesTache {
    Haute,
    Normale,
    Basse
}
PrioritesTache prioriteTache = PrioritesTache.Haute;

En utilisant les énumérations dans ces cas pratiques, tu peux améliorer la lisibilité et la maintenabilité de ton code en évitant d’utiliser des valeurs numériques arbitraires. Les énumérations permettent de donner du sens aux constantes et facilitent la compréhension du code pour les développeurs, en particulier pour les débutants en programmation.

Les énumérations en C# sont un outil puissant et essentiel pour représenter des ensembles de constantes symboliques associées à des valeurs sous-jacentes dans le code. Elles améliorent la lisibilité, la compréhension et la maintenabilité du code, en évitant l’utilisation de valeurs numériques arbitraires et en fournissant des noms symboliques significatifs.

QCM

Testez vos connaissances sur ce sujet

TL;DR

Dans cet article, nous avons exploré en détail les différents aspects des énumérations en C# :

  1. Qu’est-ce qu’une énumération et comment la déclarer à l’aide du mot-clé enum ?
  2. Comment attribuer des valeurs sous-jacentes personnalisées aux constantes ?
  3. Les différentes façons de manipuler les énumérations
  4. L’importance des bonnes pratiques lors de l’utilisation des énumérations
  5. Présentation de cas d’utilisation réels où les énumérations se révèlent très utiles

En utilisant les énumérations de manière appropriée dans votre code C#, tu peux rendre ton code plus clair, plus efficace et plus facile à maintenir. Les énumérations sont un outil précieux pour les développeurs juniors et un moyen de faciliter la transition pour les profils en reconversion professionnelle qui s’intéressent à la programmation.