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