Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Linguagem C

Escopo da variável C#

Escopo da variável C#


Neste tutorial, você aprenderá sobre escopo de variável em C# com a ajuda de exemplos.

Um escopo de variável refere-se à disponibilidade de variáveis ​​em certas partes do código.

Em C#, uma variável tem três tipos de escopo:


Escopo da variável de nível de classe C#


Em C#, quando declaramos uma variável dentro de uma classe, a variável pode ser acessada dentro da classe. Isso é conhecido como escopo de variável de nível de classe .

As variáveis ​​de nível de classe são conhecidas como campos e são declaradas fora dos métodos, construtores e blocos da classe. Por exemplo,
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();
    }
  }
}

Saída
Class Level

No exemplo acima, inicializamos uma variável chamada str dentro do Programa classe.

Como é uma variável de nível de classe, podemos acessá-la a partir de um método presente dentro da classe.
public void display() {
  Console.WriteLine(str);
}

Isso ocorre porque a variável de nível de classe é acessível em toda a classe.

Observação :Não podemos acessar a variável de nível de classe por meio de métodos estáticos. Por exemplo, suponha que temos um método estático dentro do Program classe.
static void display2() {

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

Escopo da variável de nível de método


Quando declaramos uma variável dentro de um método, a variável não pode ser acessada fora do método. Isso é conhecido como escopo de variável de nível de método . Por exemplo,
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();
    }
  }
}

No exemplo acima, criamos uma variável chamada str dentro de method1() .
// Inside method1()
string str = "method level";



Aqui, str é uma variável de nível de método. Portanto, não pode ser acessado fora de method1() .

No entanto, quando tentamos acessar o str variável do method2()
// Inside method2
Console.WriteLine(str);  // Error code

obtemos um erro.
Error   CS0103     The name 'str' does not exist in the current context  

Isso ocorre porque as variáveis ​​de nível de método têm escopo dentro do método em que são criadas. Por exemplo,
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();
    }
  }
}

Saída
inside method

Aqui, criamos o str variável e acessada dentro do mesmo método display() . Assim, o código é executado sem nenhum erro.

Escopo da variável de nível de bloco em C#


Quando declaramos uma variável dentro de um bloco (for loop, while loop, if..else), a variável só pode ser acessada dentro do bloco. Isso é conhecido como escopo de variável de nível de bloco . Por exemplo,
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();
    }
  }
}

No programa acima, inicializamos uma variável de nível de bloco i dentro do for ciclo.
for(int i=0;i<=3;i++) {
       	 
}

Desde i é uma variável de nível de bloco, quando tentamos acessar a variável fora do for ciclo,
// Outside for loop
Console.WriteLine(i);

obtemos um erro.
Error	 CS0103  The name 'i' does not exist in the current context

Linguagem C

  1. Palavra-chave global do Python
  2. Ponteiros C++ com exemplos
  3. Variável C, Tipos de Dados, Constantes
  4. Atribuições Verilog
  5. Modelagem de nível de portão
  6. Escopo da escala de tempo da Verilog
  7. Java - Tipos de Variáveis
  8. C - Variáveis
  9. C - Regras de Escopo
  10. C - Ponteiros