Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

Variablengültigkeitsbereich in C# verstehen: Klassen-, Methoden- und Blockebene

Variablengültigkeitsbereich in C# verstehen

Dieser Leitfaden erklärt, wie Variablengültigkeitsbereich in C# funktioniert, und deckt Klassen-, Methoden- und Blockebene mit klaren, praktischen Beispielen ab.

Variablengültigkeitsbereich bestimmt, wo eine Variable in Ihrem Code zugänglich ist. In C# begegnen Sie drei primären Gültigkeitsbereichen.


Klassenebener Variablengültigkeitsbereich

Wenn eine Variable innerhalb einer Klasse, aber außerhalb jeder Methode oder eines Konstruktors deklariert wird, ist sie ein Feld und kann von allen Membern dieser Klasse zugegriffen werden. Dies nennt man Klassenebener Gültigkeitsbereich.

using System;
namespace VariableScope {
    class Program {
        // Klassenebener Feld
        string str = "Class Level";
        public void Display() {
            Console.WriteLine(str);
        }
        static void Main(string[] args) {
            Program ps = new Program();
            ps.Display();
            Console.ReadLine();
        }
    }
}

Ausgabe

Class Level

In diesem Beispiel ist str ein Feld, daher in der gesamten Program Klasse verfügbar, einschließlich der Display Methode.

Wichtiger Hinweis: Instanzfelder sind von statischen Methoden nicht zugänglich, es sei denn, eine Instanz wird verwendet. Zum Beispiel:

static void Display2() {
    // Dies verursacht einen Kompilierfehler
    Console.WriteLine(str);
}

Methodenebener Variablengültigkeitsbereich

Variablen, die innerhalb einer Methode deklariert werden, sind lokal zu dieser Methode. Sie können außerhalb der sie definierenden Methode nicht referenziert werden, was als Methodenebener Gültigkeitsbereich bezeichnet wird.

using System;
namespace VariableScope {
    class Program {
        public void Method1() {
            // Lokale Variable
            string str = "method level";
        }
        public void Method2() {
            // Versuch, auf str zuzugreifen, verursacht Fehler
            Console.WriteLine(str);
        }
        static void Main(string[] args) {
            Program ps = new Program();
            ps.Method2();
            Console.ReadLine();
        }
    }
}

Der Versuch, str in Method2 zu verwenden, resultiert im Compilerfehler:

Error CS0103: The name 'str' does not exist in the current context

Umgekehrt kann eine lokale Variable innerhalb derselben Methode verwendet werden:

using System;
namespace VariableScope {
    class Program {
        public void Display() {
            string str = "inside method";
            Console.WriteLine(str);
        }
        static void Main(string[] args) {
            Program ps = new Program();
            ps.Display();
            Console.ReadLine();
        }
    }
}

Ausgabe

inside method

Blockebener Variablengültigkeitsbereich in C#

Variablen, die innerhalb eines Blocks deklariert werden – wie Schleifen, if Anweisungen oder andere verschachtelte Gültigkeitsbereiche – sind nur innerhalb dieses Blocks zugänglich. Dies nennt man Blockebener Gültigkeitsbereich.

using System;
namespace VariableScope {
    class Program {
        public void Display() {
            for (int i = 0; i <= 3; i++) {
                // i ist auf diese for-Schleife beschränkt
            }
            // Console.WriteLine(i); // ❌ Kompilierfehler
        }
        static void Main(string[] args) {
            Program ps = new Program();
            ps.Display();
            Console.ReadLine();
        }
    }
}

Hier kann der Schleifenzähler i nach der Schleife nicht referenziert werden, da sein Gültigkeitsbereich mit dem Block endet.

C Sprache

  1. Pythons global-Schlüsselwort meistern: Wie & wann man es verwendet
  2. C++ Zeiger meistern: Konzepte, Beispiele & praktische Anwendungen
  3. C Variablen, Datentypen und Konstanten – Ein praktischer Leitfaden
  4. Verilog Assignments verstehen: Typen, Syntax und Best Practices
  5. Gate-Level Modeling: Vom Hardware-Schaltplan zum Verilog-Code
  6. Verilog Timescales an jedem Scope verstehen und ausgeben
  7. Java Variablentypen verstehen: Ein umfassender Leitfaden
  8. Variablen in C verstehen: Typen, Benennungsregeln & Speicherverwaltung
  9. C-Gültigkeitsbereiche verstehen: Lokale, Globale & Formale Variablen
  10. C-Zeiger meistern: Praktische Schritte zur fortgeschrittenen Programmierung