Aller au contenu

Déclaration d’une énumération

"Déclarer une énumération, c’est donner un nom logique à chaque valeur." 🧠

Un développeur structuré

Syntaxe de base

enum NomEnum
{
    Valeur1,
    Valeur2,
    Valeur3
}

🟢 Par défaut, la première valeur prend 0, la deuxième 1, etc.

enum Jour
{
    Lundi,     // 0
    Mardi,     // 1
    Mercredi   // 2
}

Déclaration avec valeurs personnalisées

Vous pouvez assigner une valeur précise à chaque élément :

enum Niveau
{
    Facile = 1,
    Moyen = 2,
    Difficile = 5
}

⚠️ Attention : les valeurs n'ont pas besoin d'être continues, mais elles doivent être uniques.


Où peut-on déclarer une énumération ?

  • En dehors d'une classe : accessible globalement dans le fichier
  • À l’intérieur d'une classe : utile pour des types locaux ou internes
class Exemple
{
    enum Couleur { Rouge, Vert, Bleu }
}

Type sous-jacent

Par défaut, une énumération est de type int.
Mais on peut aussi préciser un type plus petit (byte, short, etc.) :

enum CodeErreur : byte
{
    OK = 0,
    NotFound = 1,
    Timeout = 2
}

Cela permet de réduire l’espace mémoire, utile dans des cas spécifiques (embarqués, fichiers binaires, etc.)


Astuce : accès à une valeur d'énumération

Jour j = Jour.Mardi;
Console.WriteLine(j);        // Affiche : Mardi
Console.WriteLine((int)j);   // Affiche : 1

⚠️ Erreurs fréquentes

  • ❌ Utiliser deux fois la même valeur
  • ❌ Tenter d'utiliser une énumération sans la déclarer
  • ❌ Confondre l’index et le nom
  • ❌ Oublier d’utiliser le nom complet (NomEnum.Valeur)
  • ❌ Mettre un type sous-jacent invalide (ex: enum MonEnum : string → ❌)

Quiz

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

1️⃣ Quel est le type par défaut d'une énumération en C# ?
A. string
B. char
C. int
D. float
E. bool
✅ Afficher la réponse
Réponse C: Une énumération utilise int par défaut comme type sous-jacent.

2️⃣ Que vaut Jour.Mercredi si on n’indique pas de valeurs ?
A. 3
B. "Mercredi"
C. 0
D. 2
E. null
✅ Afficher la réponse
Réponse D: Sans précision, les valeurs commencent à 0 ➜ Lundi=0, Mardi=1, Mercredi=2

3️⃣ Quelle est la bonne façon de déclarer une énumération avec des valeurs personnalisées ?
A. enum Fruits { Pomme = 2, Banane = 2 }
B. enum Fruits = { Pomme, Banane }
C. enum Fruits { Pomme = 1, Banane = 3 }
D. enum Fruits (Pomme, Banane)
E. Fruits enum { Pomme, Banane }
✅ Afficher la réponse
Réponse C: C’est la seule déclaration correcte avec des valeurs personnalisées.

4️⃣ Pourquoi utiliser un type byte comme base d’une enum ?
A. Pour utiliser des chaînes
B. Pour trier automatiquement
C. Pour réduire l'espace mémoire
D. Pour afficher le nom
E. Pour les faire marcher dans switch
✅ Afficher la réponse
Réponse C: Le type byte permet de limiter la taille mémoire utilisée.

5️⃣ Que se passe-t-il si deux valeurs ont le même nom dans une enum ?
A. Le dernier gagne
B. C’est ignoré
C. Le programme fonctionne mais donne de mauvais résultats
D. Erreur de compilation
E. Aucune conséquence
✅ Afficher la réponse
Réponse D: Une enum ne peut pas contenir deux fois la même valeur ➜ erreur.


Navigation

Introduction Déclaration Utilisation Travail pratique


Pour aller plus loin