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

C#-Variablenbereich

C#-Variablenbereich

In diesem Tutorial lernen Sie anhand von Beispielen den Gültigkeitsbereich von Variablen in C# kennen.

Ein Variablenbereich bezieht sich auf die Verfügbarkeit von Variablen in bestimmten Teilen des Codes.

In C# hat eine Variable drei Geltungsbereichstypen:


Variablenbereich auf C#-Klassenebene

Wenn wir in C# eine Variable innerhalb einer Klasse deklarieren, kann auf die Variable innerhalb der Klasse zugegriffen werden. Dies wird als Variablenbereich auf Klassenebene bezeichnet .

Variablen auf Klassenebene werden als Felder bezeichnet und außerhalb von Methoden, Konstruktoren und Blöcken der Klasse deklariert. Zum Beispiel

using System;
namespace VariableScope {
  class Program {

    // class level variable
    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

Im obigen Beispiel haben wir eine Variable namens str initialisiert innerhalb des Programms Klasse.

Da es sich um eine Variable auf Klassenebene handelt, können wir von einer innerhalb der Klasse vorhandenen Methode darauf zugreifen.

public void display() {
  Console.WriteLine(str);
}

Dies liegt daran, dass die Variable auf Klassenebene in der gesamten Klasse zugänglich ist.

Hinweis :Wir können nicht über statische Methoden auf die Variable auf Klassenebene zugreifen. Angenommen, wir haben eine statische Methode innerhalb des Programms Klasse.

static void display2() {

  // Access class level variable
  // Cause an Error
  Console.WriteLine(str);
}

Variablenumfang auf Methodenebene

Wenn wir eine Variable innerhalb einer Methode deklarieren, kann außerhalb der Methode nicht auf die Variable zugegriffen werden. Dies wird als Variablenbereich auf Methodenebene bezeichnet . Zum Beispiel

using System;

namespace VariableScope {
  class Program {

    public void method1() {
      // display variable inside method
      string str = "method level";
    }

    public void method2() {

      // accessing str from method2()
      Console.WriteLine(str);
    }

    static void Main(string[] args) {
      Program ps = new Program();
      ps.method2();

      Console.ReadLine();
    }
  }
}

Im obigen Beispiel haben wir eine Variable namens str erstellt innerhalb von method1() .

// Inside method1()
string str = "method level";

Hier, str ist eine Variable auf Methodenebene. Daher kann außerhalb von method1() nicht darauf zugegriffen werden .

Wenn wir jedoch versuchen, auf str zuzugreifen Variable aus method2()

// Inside method2
Console.WriteLine(str);  // Error code

wir erhalten eine Fehlermeldung.

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

Dies liegt daran, dass Variablen auf Methodenebene einen Gültigkeitsbereich innerhalb der Methode haben, in der sie erstellt werden. Zum Beispiel

using System;
namespace VariableScope {
  class Program {

    public void display() {
     string str = "inside method";

      // accessing method level variable
      Console.WriteLine(str);
    }

    static void Main(string[] args) {
    Program ps = new Program();
    ps.display();

    Console.ReadLine();
    }
  }
}

Ausgabe

inside method

Hier haben wir die str erstellt -Variable und griff innerhalb derselben Methode display() darauf zu . Daher läuft der Code ohne Fehler.


Variablenbereich auf Blockebene in C#

Wenn wir eine Variable innerhalb eines Blocks deklarieren (for-Schleife, While-Schleife, if..else), kann auf die Variable nur innerhalb des Blocks zugegriffen werden. Dies wird als Variablenbereich auf Blockebene bezeichnet . Zum Beispiel

using System;

namespace VariableScope {
  class Program {
    public void display() {

      for(int i=0;i<=3;i++) {
        	 
      }
    Console.WriteLine(i);
    }

    static void Main(string[] args) {
      Program ps = new Program();
      ps.display();

      Console.ReadLine();
    }
  }
}

Im obigen Programm haben wir eine Variable i auf Blockebene initialisiert innerhalb der for Schleife.

for(int i=0;i<=3;i++) {
       	 
}

Da ich ist eine Variable auf Blockebene, wenn wir versuchen, auf die Variable außerhalb von for zuzugreifen Schleife,

// Outside for loop
Console.WriteLine(i);

wir erhalten eine Fehlermeldung.

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

C Sprache

  1. Globales Python-Schlüsselwort
  2. C++-Zeiger mit Beispielen
  3. C-Variable, Datentypen, Konstanten
  4. Verilog-Aufgaben
  5. Modellierung auf Gatterebene
  6. Verilog-Zeitskalenumfang
  7. Java - Variablentypen
  8. C - Variablen
  9. C - Geltungsbereichsregeln
  10. C - Zeiger