Exercice - Comprendre l’étendue de la méthode
for les boucles, if-else les instructions et les méthodes représentent tous différents types de blocs de code. Chaque bloc de code a sa propre « étendue ». « Étendue » est la région d’un programme où certaines données sont accessibles. Les variables déclarées à l’intérieur d’une méthode ou d’un bloc de code sont accessibles uniquement dans cette région. À mesure que les programmes deviennent plus compliqués, ce modèle aide les programmeurs à utiliser de manière cohérente des variables clairement nommées et à gérer facilement le code.
Dans cet exercice, vous allez en savoir plus sur l’étendue des méthodes en travaillant avec différents types de méthodes et variables.
Étendue des variables de test
Les instructions déclarées en dehors de tout bloc de code sont appelées instructions de niveau supérieur. Les variables déclarées dans les instructions de niveau supérieur sont appelées « variables globales ». Les variables globales ne sont pas limitées à une étendue et peuvent être utilisées n’importe où dans tout le programme. Les variables globales peuvent être utiles pour différentes méthodes qui doivent accéder aux mêmes données. Toutefois, il est important de prêter attention aux noms de variables dans différentes étendues.
Dans l’éditeur de Visual Studio Code, supprimez tout code existant des exercices précédents.
Entrez le code suivant dans l’Éditeur Visual Studio Code :
string[] students = {"Jenna", "Ayesha", "Carlos", "Viktor"}; DisplayStudents(students); DisplayStudents(new string[] {"Robert","Vanya"}); void DisplayStudents(string[] students) { foreach (string student in students) { Console.Write($"{student}, "); } Console.WriteLine(); }Dans ce code, vous créez un tableau global
studentset une méthodeDisplayStudentsqui accepte un paramètre portant le même nom.Enregistrez et exécutez le code pour observer la sortie suivante :
Jenna, Ayesha, Carlos, Viktor, Robert, Vanya,Notez que le paramètre
studentde méthode est prioritaire sur le tableau globalstudent. Il est important d’être délibéré sur les variables globales que vous souhaitez utiliser par vos méthodes.Supprimez le code précédent.
Entrez le code suivant dans l’éditeur :
PrintCircleArea(12); void PrintCircleArea(int radius) { double pi = 3.14159; double area = pi * (radius * radius); Console.WriteLine($"Area = {area}"); }Ce code calcule et affiche la zone d’un cercle.
Essayez de référencer les variables à l’intérieur de la
PrintCircleAreaméthode en mettant à jour votre code comme suit :PrintCircleArea(12); double circumference = 2 * pi * radius;Les messages d’erreur s’affichent pour vous informer que les noms
pietradiusn’existent pas dans l’étendue actuelle. Ces variables existent uniquement dans l’étendue de laPrintCircleAreaméthode.Supprimez le code incorrect et ajoutez le code suivant :
void PrintCircleCircumference(int radius) { double pi = 3.14159; double circumference = 2 * pi * radius; Console.WriteLine($"Circumference = {circumference}"); }Étant donné que la variable
piest définie sur la même valeur fixe et utilisée dans les deux méthodes, cette valeur est un bon candidat pour une variable globale. Dans cet exemple,radiusn’est pas une variable globale afin que vous puissiez appeler les méthodes avec différentes valeurs deradiussans mettre à jour une variable à chaque fois.Mettez à jour votre code comme suit :
double pi = 3.14159; void PrintCircleArea(int radius) { double area = pi * (radius * radius); Console.WriteLine($"Area = {area}"); } void PrintCircleCircumference(int radius) { double circumference = 2 * pi * radius; Console.WriteLine($"Circumference = {circumference}"); }À présent, les deux méthodes peuvent référencer la même valeur de
pisans avoir besoin de la définir. Vous avez peut-être déjà deviné que les méthodes peuvent appeler d’autres méthodes. En règle générale, tant qu’une méthode est définie dans l’étendue de votre programme, elle peut être appelée n’importe où.Ajoutez une nouvelle méthode à votre code comme suit :
double pi = 3.14159; PrintCircleInfo(12); PrintCircleInfo(24); void PrintCircleInfo(int radius) { Console.WriteLine($"Circle with radius {radius}"); PrintCircleArea(radius); PrintCircleCircumference(radius); }Dans ce code, vous créez une méthode
PrintCircleInfopour appeler les méthodes existantes. La valeur deradiusce paramètre est également transmise à chaque méthode. La création de méthodes modulaires peut aider à maintenir votre code organisé et facile à lire.Enregistrez et exécutez le code pour observer la sortie suivante :
Circle with radius 12 Area = 452.38896 Circumference = 75.39815999999999 Circle with radius 24 Area = 1809.55584 Circumference = 150.79631999999998
Récapitulatif
Voici ce que vous avez appris sur l’étendue de méthode jusqu’à présent :
- Les variables déclarées à l’intérieur d’une méthode ne sont accessibles qu’à cette méthode.
- Les variables déclarées dans les instructions de niveau supérieur sont accessibles dans tout le programme.
- Les méthodes n’ont pas accès aux variables définies dans différentes méthodes.
- Les méthodes peuvent appeler d’autres méthodes.