C-SHARP - 3.15 Enum (Démo)

Petit exercice rapide pour mettre en pratique la notion d'énumération. Objectif : selon la valeur stockée dans une variable jour de type JoursSemaines, le programme doit afficher « C'est le week-end, on est… » si le jour est samedi ou dimanche, sinon « C'est la semaine, on est… ». Le programme doit s'adapter automatiquement à la constante choisie, en utilisant impérativement l'énumération définie précédemment.

La logique de la condition

La première constante de l'énumération a été initialisée à 1, donc Lundi = 1, Mardi = 2, …, Vendredi = 5, Samedi = 6, Dimanche = 7. La règle est alors simple : si la valeur de la constante est strictement supérieure à 5, on est en week-end. Pour comparer une constante d'énumération à un entier, il faut forcer la conversion via un cast en int.

La correction complète

if ((int)jour > 5)
{
    Console.WriteLine(string.Format("C'est le week-end, on est {0}", jour));
}
else
{
    Console.WriteLine("C'est la semaine, on est " + jour);
}

Deux styles d'affichage sont utilisés volontairement pour réviser les notions. Le if emploie string.Format avec un placeholder {0} remplacé par la variable jour. Le else utilise la concaténation classique avec l'opérateur +. Dans les deux cas, jour affiche directement le nom de la constante (Samedi, Mercredi…).

Tests et bonnes pratiques d'affichage

Si jour = JoursSemaines.Samedi, la valeur vaut 6 et la condition > 5 est vraie : on affiche « C'est le week-end, on est Samedi ». Avec Dimanche, même résultat. Avec Mercredi (valeur 3), la condition est fausse, on bascule dans le else qui affiche « C'est la semaine, on est Mercredi ».

Petite recommandation pour conclure : préférez string.Format à la concaténation. C'est plus lisible, plus sûr, et on visualise mieux la sortie. La concaténation fonctionne, mais on est moins certain du rendu final lorsque le message devient complexe.

En résumé

Cette vidéo démontre comment utiliser les énumérations en C# pour un exercice pratique : afficher si on est en semaine ou en week-end selon le jour stocké. Le code montre comment initialiser une énumération à 1, évaluer ses valeurs numériques avec une condition, et afficher les résultats en utilisant deux approches : la méthode String.Format() et la concaténation directe.

Points clés

  • Initialiser une énumération à 1 permet de commencer les valeurs à 1 au lieu de 0, facilitant la correspondance avec les jours 1-7
  • Pour récupérer la valeur numérique d'une constante enum, il faut forcer la conversion en int avec la syntaxe : (int)jour
  • La condition if (jour > 5) détermine si on est en week-end, car vendredi = 5 et samedi/dimanche = 6-7
  • String.Format() offre une meilleure lisibilité pour afficher du texte formaté avec placeholders {0}, {1}, etc.
  • Le nom de la constante enum peut être récupéré et affiché directement dans la chaîne de caractères
  • Les conditions if/else permettent de traiter les deux cas : week-end (> 5) et semaine (<= 5)

Questions fréquentes

Pourquoi initialiser l'énumération à 1 au lieu de 0 ?

Parce que les jours de la semaine doivent être numérotés de 1 à 7, avec vendredi = 5 et samedi/dimanche = 6-7. Cela facilite la logique pour déterminer le week-end.

Comment forcer la conversion d'une constante enum en int ?

En ajoutant des parenthèses avec le type int devant la variable : (int)jour. Cela permet de récupérer la valeur numérique sous-jacente de la constante.

Quelle est la meilleure approche pour afficher le résultat : String.Format() ou concaténation ?

String.Format() est recommandée car elle est plus lisible et structurée avec les placeholders {0}, {1}. La concaténation directe fonctionne aussi mais est moins claire.