Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> C Taal

C# Variabel bereik

C# variabel bereik

In deze tutorial leer je aan de hand van voorbeelden over variabel bereik in C#.

Een variabel bereik verwijst naar de beschikbaarheid van variabelen in bepaalde delen van de code.

In C# heeft een variabele drie soorten bereik:

  • Toepassingsgebied op klasniveau
  • Reikwijdte methodeniveau
  • Reikwijdte blokniveau

C# Variabel bereik op klasseniveau

Als we in C# een variabele binnen een klasse declareren, is de variabele toegankelijk binnen de klasse. Dit staat bekend als variabel bereik op klasseniveau .

Variabelen op klasseniveau staan ​​bekend als velden en worden gedeclareerd buiten methoden, constructors en blokken van de klasse. Bijvoorbeeld,

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();
    }
  }
}

Uitvoer

Class Level

In het bovenstaande voorbeeld hebben we een variabele met de naam str . geïnitialiseerd binnen het Programma klasse.

Omdat het een variabele op klasseniveau is, kunnen we er toegang toe krijgen via een methode die aanwezig is in de klasse.

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

Dit komt omdat de variabele op klasniveau toegankelijk is in de hele klas.

Opmerking :We hebben geen toegang tot de variabele op klasseniveau via statische methoden. Stel bijvoorbeeld dat we een statische methode hebben in het Programma klasse.

static void display2() {

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

Variabele bereik methodeniveau

Wanneer we een variabele binnen een methode declareren, is de variabele niet toegankelijk buiten de methode. Dit staat bekend als variabel bereik op methodeniveau . Bijvoorbeeld,

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();
    }
  }
}

In het bovenstaande voorbeeld hebben we een variabele gemaakt met de naam str binnen method1() .

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

Hier, str is een variabele op methodeniveau. Het is dus niet toegankelijk buiten method1() .

Wanneer we echter proberen toegang te krijgen tot de str variabele uit de method2()

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

we krijgen een foutmelding.

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

Dit komt omdat variabelen op methodeniveau een bereik hebben binnen de methode waarin ze zijn gemaakt. Bijvoorbeeld,

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();
    }
  }
}

Uitvoer

inside method

Hier hebben we de str . gemaakt variabele en heb er toegang toe met dezelfde methode display() . Daarom wordt de code uitgevoerd zonder enige fout.


Blokniveau variabel bereik in C#

Wanneer we een variabele binnen een blok declareren (for loop, while loop, if..else), is de variabele alleen toegankelijk binnen het blok. Dit staat bekend als variabel bereik op blokniveau . Bijvoorbeeld,

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();
    }
  }
}

In het bovenstaande programma hebben we een variabele op blokniveau i . geïnitialiseerd binnen de for lus.

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

Sinds ik is een variabele op blokniveau, wanneer we proberen toegang te krijgen tot de variabele buiten de for lus,

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

we krijgen een foutmelding.

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

C Taal

  1. Algemeen Python-sleutelwoord
  2. C++-aanwijzers met voorbeelden
  3. C Variabele, gegevenstypen, constanten
  4. Verilog-opdrachten
  5. Modellering op poortniveau
  6. Verilog Tijdschaalbereik
  7. Java - Variabele Types
  8. C - Variabelen
  9. C - Scope-regels
  10. C - Aanwijzers
  11. C - Variabele argumenten