Lokale und Globale Gültigkeitsbereiche
Der Gültigkeitsbereich (Scope) einer Variablen ist der Teil des Codes, in dem auf diese Variable zugegriffen werden kann. In C# gibt es einen globalen Gültigkeitsbereich sowie viele mögliche lokale Gültigkeitsbereiche.
Wenn eine Variable außerhalb einer Methode erstellt wird, kann auf sie nahezu überall im Programm zugegriffen werden. Daher sagt man, dass sie einen globalen Gültigkeitsbereich hat:
main.cs
1234567891011121314151617181920using System; namespace ConsoleApp { internal class Program { static int myVariable = 10; // Variable with a Global Scope static void testMethod() { // Accessing `myVariable` inside `testMethod` Console.WriteLine($"testMethod: {myVariable}"); } static void Main(string[] args) { // Accessing `myVariable` inside `Main` method Console.WriteLine($"Main Function: {myVariable}"); testMethod(); } } }
Hinweis
Wenn eine Variable außerhalb einer Methode deklariert wird, ist es wichtig, das Schlüsselwort
static
vor der Deklaration zu verwenden.
Im obigen Beispiel wurde auf die Variable myVariable
sowohl in der Methode Main
als auch in der Methode testMethod
zugegriffen. Dies ist jedoch nicht immer möglich.
Eine innerhalb eines Codeblocks deklarierte Variable ist nur innerhalb dieses Blocks und aller darin enthaltenen Unter-Codeblöcke zugänglich. Beispielsweise ist eine innerhalb einer Methode deklarierte Variable nur direkt innerhalb dieser Methode zugänglich. Ebenso ist eine innerhalb eines if
-, else if
- oder else
-Blocks deklarierte Variable nur innerhalb dieses Blocks zugänglich. Eine solche Variable hat einen lokalen Gültigkeitsbereich.
Nehmen Sie sich einen Moment Zeit, um den folgenden Code zu überprüfen und zu verstehen, wie er funktioniert:
main.cs
123456789101112131415161718192021222324252627282930313233using System; namespace ConsoleApp { class Program { static int variable_1 = 1; static void Main(string[] args) { int variable_2 = 2; if (true) { int variable_3 = 3; Console.WriteLine(variable_1); Console.WriteLine(variable_2); Console.WriteLine(variable_3); } Console.WriteLine(variable_1); Console.WriteLine(variable_2); Console.WriteLine(variable_3); // ERROR HERE Console.WriteLine(variable_4); // ERROR HERE // Note: A variable cannot be used before it's defined in the code } static void myMethod() { int variable_4 = 4; Console.WriteLine(variable_1); Console.WriteLine(variable_2); // ERROR HERE Console.WriteLine(variable_3); // ERROR HERE Console.WriteLine(variable_4); } } }
Im obigen Code gibt es vier Variablen:
variable_1
– globaler Gültigkeitsbereich;variable_2
– lokaler Gültigkeitsbereich, definiert in der Main-Methode;variable_3
– lokaler Gültigkeitsbereich, definiert imif
-Block;variable_4
– lokaler Gültigkeitsbereich, definiert in der MethodemyMethod
.
Das oben gezeigte Programm lässt sich möglicherweise gar nicht kompilieren, demonstriert jedoch, wo bestimmte Variablen zugänglich sind und wo nicht. Der Bereich des Codes, in dem eine Variable zugänglich ist, wird als Gültigkeitsbereich (Scope) dieser Variable bezeichnet.
variable_1
ist eine globale Variable und daher fast überall zugänglich;variable_2
ist innerhalb der gesamtenMain
-Methode zugänglich, einschließlich Unterblöcken wie derif
-Bedingung;variable_3
ist nur innerhalb desif
-Blocks zugänglich;variable_4
ist nur innerhalb des Blocks der MethodemyMethod
zugänglich.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Can you explain the difference between global and local scope in more detail?
Can you give an example of when to use a global variable versus a local variable?
What happens if I try to access a variable outside of its scope?
Awesome!
Completion rate improved to 1.59
Lokale und Globale Gültigkeitsbereiche
Swipe um das Menü anzuzeigen
Der Gültigkeitsbereich (Scope) einer Variablen ist der Teil des Codes, in dem auf diese Variable zugegriffen werden kann. In C# gibt es einen globalen Gültigkeitsbereich sowie viele mögliche lokale Gültigkeitsbereiche.
Wenn eine Variable außerhalb einer Methode erstellt wird, kann auf sie nahezu überall im Programm zugegriffen werden. Daher sagt man, dass sie einen globalen Gültigkeitsbereich hat:
main.cs
1234567891011121314151617181920using System; namespace ConsoleApp { internal class Program { static int myVariable = 10; // Variable with a Global Scope static void testMethod() { // Accessing `myVariable` inside `testMethod` Console.WriteLine($"testMethod: {myVariable}"); } static void Main(string[] args) { // Accessing `myVariable` inside `Main` method Console.WriteLine($"Main Function: {myVariable}"); testMethod(); } } }
Hinweis
Wenn eine Variable außerhalb einer Methode deklariert wird, ist es wichtig, das Schlüsselwort
static
vor der Deklaration zu verwenden.
Im obigen Beispiel wurde auf die Variable myVariable
sowohl in der Methode Main
als auch in der Methode testMethod
zugegriffen. Dies ist jedoch nicht immer möglich.
Eine innerhalb eines Codeblocks deklarierte Variable ist nur innerhalb dieses Blocks und aller darin enthaltenen Unter-Codeblöcke zugänglich. Beispielsweise ist eine innerhalb einer Methode deklarierte Variable nur direkt innerhalb dieser Methode zugänglich. Ebenso ist eine innerhalb eines if
-, else if
- oder else
-Blocks deklarierte Variable nur innerhalb dieses Blocks zugänglich. Eine solche Variable hat einen lokalen Gültigkeitsbereich.
Nehmen Sie sich einen Moment Zeit, um den folgenden Code zu überprüfen und zu verstehen, wie er funktioniert:
main.cs
123456789101112131415161718192021222324252627282930313233using System; namespace ConsoleApp { class Program { static int variable_1 = 1; static void Main(string[] args) { int variable_2 = 2; if (true) { int variable_3 = 3; Console.WriteLine(variable_1); Console.WriteLine(variable_2); Console.WriteLine(variable_3); } Console.WriteLine(variable_1); Console.WriteLine(variable_2); Console.WriteLine(variable_3); // ERROR HERE Console.WriteLine(variable_4); // ERROR HERE // Note: A variable cannot be used before it's defined in the code } static void myMethod() { int variable_4 = 4; Console.WriteLine(variable_1); Console.WriteLine(variable_2); // ERROR HERE Console.WriteLine(variable_3); // ERROR HERE Console.WriteLine(variable_4); } } }
Im obigen Code gibt es vier Variablen:
variable_1
– globaler Gültigkeitsbereich;variable_2
– lokaler Gültigkeitsbereich, definiert in der Main-Methode;variable_3
– lokaler Gültigkeitsbereich, definiert imif
-Block;variable_4
– lokaler Gültigkeitsbereich, definiert in der MethodemyMethod
.
Das oben gezeigte Programm lässt sich möglicherweise gar nicht kompilieren, demonstriert jedoch, wo bestimmte Variablen zugänglich sind und wo nicht. Der Bereich des Codes, in dem eine Variable zugänglich ist, wird als Gültigkeitsbereich (Scope) dieser Variable bezeichnet.
variable_1
ist eine globale Variable und daher fast überall zugänglich;variable_2
ist innerhalb der gesamtenMain
-Methode zugänglich, einschließlich Unterblöcken wie derif
-Bedingung;variable_3
ist nur innerhalb desif
-Blocks zugänglich;variable_4
ist nur innerhalb des Blocks der MethodemyMethod
zugänglich.
Danke für Ihr Feedback!