Exercice - Comprendre l’étendue de la méthode

Effectué

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.

  1. Dans l’éditeur de Visual Studio Code, supprimez tout code existant des exercices précédents.

  2. 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 students et une méthode DisplayStudents qui accepte un paramètre portant le même nom.

  3. Enregistrez et exécutez le code pour observer la sortie suivante :

    Jenna, Ayesha, Carlos, Viktor, 
    Robert, Vanya, 
    

    Notez que le paramètre student de méthode est prioritaire sur le tableau global student . Il est important d’être délibéré sur les variables globales que vous souhaitez utiliser par vos méthodes.

  4. Supprimez le code précédent.

  5. 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.

  6. Essayez de référencer les variables à l’intérieur de la PrintCircleArea mé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 pi et radius n’existent pas dans l’étendue actuelle. Ces variables existent uniquement dans l’étendue de la PrintCircleArea méthode.

  7. 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 pi est 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, radius n’est pas une variable globale afin que vous puissiez appeler les méthodes avec différentes valeurs de radius sans mettre à jour une variable à chaque fois.

  8. 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 pi sans 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ù.

  9. 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 PrintCircleInfo pour appeler les méthodes existantes. La valeur de radius ce paramètre est également transmise à chaque méthode. La création de méthodes modulaires peut aider à maintenir votre code organisé et facile à lire.

  10. 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.