🧪 Labo 2.2B – Portée des variables
🎯 Objectif
Comprendre la différence entre :
- Variable de classe (portée globale)
- Variable locale à une méthode
- Variable locale à un bloc (ex. : dans un
if
)
📝 Étapes
- Créez un nouveau projet Console App nommé
ExercicePortee
. - Copiez le code suivant, puis essayez de le compiler tel quel :
using System;
class Program
{
static int nombreGlobal = 42; // portée : classe entière
static void Main()
{
int nombreMain = 10; // portée : méthode Main
if (nombreMain > 5)
{
int nombreBloc = 5; // portée : bloc if
Console.WriteLine("Bloc if : " + nombreBloc);
}
Console.WriteLine("Main : " + nombreMain); // ✅ OK
Console.WriteLine("Global : " + nombreGlobal); // ✅ OK
// Console.WriteLine("Bloc : " + nombreBloc); // ❌ Erreur ici : nombreBloc hors portée
}
static void AutreMethode()
{
// Console.WriteLine(nombreMain); // ❌ Erreur ici : nombreMain n'existe pas ici
Console.WriteLine("Global dans AutreMethode : " + nombreGlobal); // ✅ OK
}
}
🔍 Questions de réflexion
- Pourquoi ne peut-on pas accéder à
nombreBloc
hors duif
? - Pourquoi
nombreMain
n’est pas accessible depuisAutreMethode()
? - Quelle variable est visible partout dans la classe ?
- Qu’est-ce que
{ }
crée dans ce contexte ?
✅ À faire
- Corrige les lignes commentées qui causent des erreurs.
- Ajoute une nouvelle méthode
AfficherGlobalEtLocal()
qui essaie d’accéder aux différentes variables. - Dessine un petit schéma ou commente ton code pour indiquer la portée de chaque variable.