1. Objectif de l'exercice
Cet exercice pratique a pour but de vous apprendre à déclarer, initialiser et manipuler une énumération (enum) en C#. Les énumérations sont idéales pour représenter un groupe de constantes apparentées, ce qui rend votre code plus lisible et plus sécurisé contre les erreurs de saisie.
2. Énoncé de l'exercice
Vous devez créer un programme console en C# qui effectue les tâches suivantes :
- Déclarer une énumération nommée
JoursSemainecontenant les 7 jours de la semaine. - Dans la méthode
Main, créer une variable de ce type et lui assigner un jour précis (par exemple, Samedi). - Afficher le jour choisi dans la console.
- Vérifier à l'aide d'une condition si ce jour tombe pendant le week-end ou pendant la semaine ouvrable, et afficher un message approprié.
- Afficher la valeur numérique (l'index) sous-jacente à ce jour.
3. Code source de la solution
Voici la solution complète à copier et tester dans votre environnement Visual Studio :
using System;
namespace ExerciceEnumeration
{
// 1. Déclaration de l'énumération en dehors de la classe Program
enum JoursSemaine
{
Lundi,
Mardi,
Mercredi,
Jeudi,
Vendredi,
Samedi,
Dimanche
}
class Program
{
static void Main(string[] args)
{
// 2. Initialisation d'une variable de type JoursSemaine
JoursSemaine jourAujourdhui = JoursSemaine.Samedi;
// 3. Affichage de la valeur
Console.WriteLine("Le jour sélectionné est : " + jourAujourdhui);
// 4. Test conditionnel basé sur l'énumération
if (jourAujourdhui == JoursSemaine.Samedi || jourAujourdhui == JoursSemaine.Dimanche)
{
Console.WriteLine("C'est le week-end, profitez-en !");
}
else
{
Console.WriteLine("C'est un jour de la semaine, au travail !");
}
// 5. Récupération de la valeur numérique (Cast)
int valeurNumerique = (int)jourAujourdhui;
Console.WriteLine("La valeur numérique associée à ce jour est : " + valeurNumerique);
Console.ReadLine();
}
}
}
4. Explications du code
- Déclaration : Le mot-clé
enumest utilisé pour créer notre typeJoursSemaine. Il est généralement préférable de déclarer l'énumération au niveau de l'espace de noms (namespace) pour qu'elle soit accessible par toutes les classes. - Lisibilité : Comparer
jourAujourdhui == JoursSemaine.Samediest beaucoup plus clair pour un être humain que de comparerjourAujourdhui == 5. - Valeurs sous-jacentes : Par défaut, C# attribue des entiers aux éléments d'une énumération en commençant par
0. Ici,Lundivaut 0,Mardivaut 1, jusqu'àDimanchequi vaut 6. Le transtypage(int)permet de révéler cette valeur cachée.
Rédigé et structuré par : Med Khalil Kribi