Übung – Verstehen des Methodenumfangs
for
Schleifen, if-else
Anweisungen und Methoden stellen alle verschiedene Arten von Codeblöcken dar. Jeder Codeblock verfügt über einen eigenen "Bereich". "Bereich" ist die Region eines Programms, in dem auf bestimmte Daten zugegriffen werden kann. Variablen, die innerhalb einer Methode oder eines Codeblocks deklariert sind, können nur innerhalb dieses Bereichs zugänglich sein. Da Programme komplizierter werden, hilft dieses Muster Programmierern dabei, klar benannte Variablen konsistent zu verwenden und den Code leichter lesbar zu halten.
In dieser Übung erfahren Sie mehr über den Methodenbereich, indem Sie mit verschiedenen Arten von Methoden und Variablen arbeiten.
Testvariablenbereich
Anweisungen, die außerhalb eines Codeblocks deklariert sind, werden als Anweisungen der obersten Ebene bezeichnet. Variablen, die in Anweisungen der obersten Ebene deklariert sind, werden als "globale Variablen" bezeichnet. Globale Variablen sind nicht auf einen Bereich beschränkt und können überall im gesamten Programm verwendet werden. Globale Variablen können für verschiedene Methoden nützlich sein, die auf dieselben Daten zugreifen müssen. Es ist jedoch wichtig, die Variablennamen in verschiedenen Bereichen zu beachten.
Löschen Sie im Visual Studio Code-Editor vorhandenen Code aus den vorherigen Übungen.
Geben Sie den folgenden Code in den Visual Studio Code-Editor ein:
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(); }
In diesem Code erstellen Sie ein globales
students
Array und eine MethodeDisplayStudents
, die einen Parameter mit demselben Namen akzeptiert.Speichern Sie den Code, und führen Sie den Code aus, um die folgende Ausgabe zu beobachten:
Jenna, Ayesha, Carlos, Viktor, Robert, Vanya,
Beachten Sie, dass der Methodenparameter
student
Vorrang vor dem globalenstudent
Array hat. Es ist wichtig, bewusst zu sein, welche globalen Variablen Ihre Methoden verwenden sollen.Löschen Sie den vorherigen Code.
Geben Sie den folgenden Code in den Editor ein:
PrintCircleArea(12); void PrintCircleArea(int radius) { double pi = 3.14159; double area = pi * (radius * radius); Console.WriteLine($"Area = {area}"); }
Dieser Code berechnet und zeigt den Bereich eines Kreises an.
Versuchen Sie, auf die Variablen innerhalb der
PrintCircleArea
Methode zu verweisen, indem Sie den Code wie folgt aktualisieren:PrintCircleArea(12); double circumference = 2 * pi * radius;
Fehlermeldungen erscheinen, die darauf hinweisen, dass die Namen
pi
undradius
im aktuellen Bereich nicht existieren. Diese Variablen sind nur innerhalb desPrintCircleArea
Methodenbereichs vorhanden.Löschen Sie den falschen Code, und fügen Sie den folgenden Code hinzu:
void PrintCircleCircumference(int radius) { double pi = 3.14159; double circumference = 2 * pi * radius; Console.WriteLine($"Circumference = {circumference}"); }
Da die Variable
pi
auf denselben festen Wert festgelegt und in beiden Methoden verwendet wird, ist dieser Wert ein guter Kandidat für eine globale Variable. In diesem Beispiel handelt es sich nicht um eine globale Variable,radius
sodass Sie die Methoden mit unterschiedlichen Wertenradius
aufrufen können, ohne eine Variable jedes Mal zu aktualisieren.Aktualisieren Sie Ihren Code wie folgt:
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}"); }
Jetzt können beide Methoden auf denselben Wert
pi
verweisen, ohne ihn definieren zu müssen. Möglicherweise haben Sie bereits erraten, dass Methoden andere Methoden aufrufen können. Im Allgemeinen kann eine Methode, solange sie im Rahmen Ihres Programms definiert ist, überall aufgerufen werden.Fügen Sie ihrem Code eine neue Methode wie folgt hinzu:
double pi = 3.14159; PrintCircleInfo(12); PrintCircleInfo(24); void PrintCircleInfo(int radius) { Console.WriteLine($"Circle with radius {radius}"); PrintCircleArea(radius); PrintCircleCircumference(radius); }
In diesem Code erstellen Sie eine neue Methode
PrintCircleInfo
, um die vorhandenen Methoden aufzurufen. Der Wert vonradius
wird auch an jede Methode übergeben. Durch das Erstellen modularisierter Methoden können Sie Ihren Code organisieren und einfach zu lesen machen.Speichern Sie den Code, und führen Sie den Code aus, um die folgende Ausgabe zu beobachten:
Circle with radius 12 Area = 452.38896 Circumference = 75.39815999999999 Circle with radius 24 Area = 1809.55584 Circumference = 150.79631999999998
Zusammenfassung
Hier erfahren Sie, was Sie bisher über den Methodenbereich gelernt haben:
- Variablen, die innerhalb einer Methode deklariert sind, können nur auf diese Methode zugegriffen werden.
- Variablen, die in Anweisungen der obersten Ebene deklariert sind, können im gesamten Programm zugänglich sein.
- Methoden haben keinen Zugriff auf Variablen, die in verschiedenen Methoden definiert sind.
- Methoden können andere Methoden aufrufen.