Déclaration d’une énumération
"Déclarer une énumération, c’est donner un nom logique à chaque valeur." 🧠
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# ?
B. char
C. int
D. float
E. bool
✅ Afficher la réponse
int par défaut comme type sous-jacent.
2️⃣ Que vaut
Jour.Mercredi si on n’indique pas de valeurs ?
B. "Mercredi"
C. 0
D. 2
E. null
✅ Afficher la réponse
3️⃣ Quelle est la bonne façon de déclarer une énumération avec des valeurs personnalisées ?
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
4️⃣ Pourquoi utiliser un type
byte comme base d’une enum ?
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
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 ?
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
Navigation
Introduction Déclaration Utilisation Travail pratique
Pour aller plus loin
-
Documentation Microsoft – enum (C# Reference)
Détail de la syntaxe, du comportement par défaut, des types sous-jacents et du casting avec des exemples précis. -
Microsoft Learn – C# Enums Interactive Tutorial
Un tutoriel interactif pour apprendre à utiliser les énumérations dans des scénarios concrets.
-
W3Schools – C# Enums
Une explication simple et interactive sur les énumérations, idéale pour débutants. -
Programiz – C# enum (with Examples)
Guide pédagogique avec de nombreux exemples concrets et astuces pratiques. -
Dot Net Tutorials – Enum in C#
Explication détaillée sur les bonnes pratiques d’utilisation, le casting, et les limitations des énumérations.