Aller au contenu

Utilisation d’une énumération

"Les énumérations ne sont utiles que si on les utilise réellement."

Un développeur pragmatique

Affectation d’une valeur d'énumération

Une fois l’énumération déclarée, on peut l'utiliser comme un type de variable.

enum Jour { Lundi, Mardi, Mercredi }

Jour aujourdHui = Jour.Mardi;

Affichage d’une valeur enum

Console.WriteLine(aujourdHui);      // Affiche : Mardi
Console.WriteLine((int)aujourdHui); // Affiche : 1

L'affichage par défaut utilise le nom de la constante, pas sa valeur numérique.


Conversion vers / depuis un entier

  • Vers entier : int valeur = (int)Jour.Mardi;
  • Depuis entier : Jour j = (Jour)2;

⚠️ Attention : si la valeur entière ne correspond pas à une constante définie, la conversion reste possible mais peut être dangereuse (valeur invalide au sens logique).


Utilisation dans une structure conditionnelle

Les énumérations sont idéales avec un switch :

Jour j = Jour.Mercredi;

switch (j)
{
    case Jour.Lundi:
        Console.WriteLine("Début de semaine");
        break;
    case Jour.Mercredi:
        Console.WriteLine("Milieu de semaine");
        break;
    default:
        Console.WriteLine("Autre jour");
        break;
}

Enum et méthodes

On peut utiliser les enum comme paramètres de méthode :

void AfficherJour(Jour j)
{
    Console.WriteLine("Le jour sélectionné est : " + j);
}

AfficherJour(Jour.Mardi);

⚠️ Erreurs fréquentes

  • ❌ Comparer une valeur enum avec un string (if (j == "Mardi"))
  • ❌ Utiliser un entier sans cast explicite (Jour j = 2)
  • ❌ Oublier break dans un switch sur enum
  • ❌ Ne pas couvrir tous les cas possibles dans un switch (penser au default !)

Quiz

Testez vos connaissances ! 📝 Clique sur chaque question pour découvrir la réponse.

1️⃣ Que permet l’utilisation de ToString() sur une valeur enum ?
A. Afficher sa valeur entière
B. Obtenir son nom sous forme de texte
C. L’effacer de la mémoire
D. Modifier son type
E. Comparer deux enums
✅ Afficher la réponse
Réponse B: ToString() retourne le nom textuel de la constante.

2️⃣ Que fait ce code ?
Jour j = (Jour)3;
Console.WriteLine(j);

A. Affiche une erreur
B. Affiche 3
C. Affiche un nom si 3 correspond à une valeur définie
D. Ne compile pas
E. Affiche toujours null
✅ Afficher la réponse
Réponse C: Le cast est autorisé et affiche un nom si la valeur existe, sinon un nombre.

3️⃣ Quel est le type d’une variable de type enum ?
A. string
B. int
C. bool
D. enum
E. Le nom de l’énumération
✅ Afficher la réponse
Réponse E: Le type d’une variable enum est le nom de l’énumération elle-même.

4️⃣ Que faut-il toujours faire dans un switch utilisant une enum ?
A. Ajouter break à chaque case
B. Ajouter une boucle
C. Ajouter une classe
D. Utiliser une chaîne de caractères
E. Éviter l’énumération
✅ Afficher la réponse
Réponse A: Sans break, tous les cas suivants s’exécutent (effet de “chute”).

5️⃣ Pourquoi faut-il faire attention lors d'une conversion enum-int ?
A. Cela modifie la mémoire
B. Cela ajoute des valeurs
C. Cela peut entraîner un crash
D. Cela peut produire une valeur invalide
E. Cela interrompt l’exécution
✅ Afficher la réponse
Réponse D: Un cast entier ➜ enum est autorisé même si la valeur ne correspond à rien de défini.


Navigation

Introduction Déclaration Utilisation Travail pratique


Pour aller plus loin