Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Lenguaje C

Ámbito variable de C#

Ámbito variable de C#

En este tutorial, aprenderá sobre el ámbito de las variables en C# con la ayuda de ejemplos.

Un alcance variable se refiere a la disponibilidad de variables en ciertas partes del código.

En C#, una variable tiene tres tipos de alcance:


Alcance variable de nivel de clase C#

En C#, cuando declaramos una variable dentro de una clase, se puede acceder a la variable dentro de la clase. Esto se conoce como alcance variable de nivel de clase .

Las variables de nivel de clase se conocen como campos y se declaran fuera de los métodos, constructores y bloques de la clase. Por ejemplo,

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

Salida

Class Level

En el ejemplo anterior, hemos inicializado una variable llamada str dentro del Programa clase.

Dado que es una variable de nivel de clase, podemos acceder a ella desde un método presente dentro de la clase.

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

Esto se debe a que la variable de nivel de clase es accesible en toda la clase.

Nota :No podemos acceder a la variable de nivel de clase a través de métodos estáticos. Por ejemplo, supongamos que tenemos un método estático dentro del Program clase.

static void display2() {

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

Alcance variable de nivel de método

Cuando declaramos una variable dentro de un método, no se puede acceder a la variable fuera del método. Esto se conoce como alcance variable de nivel de método. . Por ejemplo,

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

En el ejemplo anterior, hemos creado una variable llamada str dentro de method1() .

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

Aquí, str es una variable de nivel de método. Por lo tanto, no se puede acceder fuera de method1() .

Sin embargo, cuando intentamos acceder al str variable del method2()

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

obtenemos un error.

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

Esto se debe a que las variables de nivel de método tienen alcance dentro del método en el que se crean. Por ejemplo,

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

Salida

inside method

Aquí, hemos creado el str variable y accedió a ella dentro del mismo método display() . Por lo tanto, el código se ejecuta sin ningún error.


Ámbito variable de nivel de bloque en C#

Cuando declaramos una variable dentro de un bloque (for loop, while loop, if...else), solo se puede acceder a la variable dentro del bloque. Esto se conoce como ámbito variable de nivel de bloque. . Por ejemplo,

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

En el programa anterior, hemos inicializado una variable de nivel de bloque i dentro del for bucle.

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

Desde i es una variable de nivel de bloque, cuando intentamos acceder a la variable fuera de for bucle,

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

obtenemos un error.

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

Lenguaje C

  1. Palabra clave global de Python
  2. Punteros de C++ con ejemplos
  3. C Variable, tipos de datos, constantes
  4. Asignaciones de Verilog
  5. Modelado de nivel de puerta
  6. Alcance de la escala de tiempo de Verilog
  7. Java - Tipos de variables
  8. C - Variables
  9. C - Reglas de alcance
  10. C - Punteros
  11. C - Argumentos variables