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

Entendiendo el ámbito de variables en C#: Nivel de clase, método y bloque

Entendiendo el ámbito de variables en C#

Esta guía explica cómo funciona el ámbito de variables en C#, cubriendo ámbitos de nivel de clase, método y bloque con ejemplos claros y prácticos.

El ámbito de variable determina dónde se puede acceder a una variable dentro de tu código. En C#, encuentras tres ámbitos principales.


Ámbito de variable de nivel de clase

Cuando una variable se declara dentro de una clase pero fuera de cualquier método o constructor, es un campo y puede ser accedida por todos los miembros de esa clase. Esto se conoce como ámbito de nivel de clase.

using System;
namespace VariableScope {
    class Program {
        // Campo de nivel de clase
        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 este ejemplo, str es un campo, por lo que está disponible en toda la clase Program, incluyendo el método Display.

Nota importante: Los campos de instancia no son accesibles desde métodos estáticos a menos que se use una instancia. Por ejemplo:

static void Display2() {
    // Esto causará error en tiempo de compilación
    Console.WriteLine(str);
}

Ámbito de variable de nivel de método

Las variables declaradas dentro de un método son locales a ese método. No pueden referenciarse fuera del método que las define, lo que se llama ámbito de nivel de método.

using System;
namespace VariableScope {
    class Program {
        public void Method1() {
            // Variable local
            string str = "method level";
        }
        public void Method2() {
            // Intentar acceder a str aquí causará error
            Console.WriteLine(str);
        }
        static void Main(string[] args) {
            Program ps = new Program();
            ps.Method2();
            Console.ReadLine();
        }
    }
}

Intentar usar str en Method2 resulta en error del compilador:

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

Por el contrario, una variable local puede usarse dentro del mismo método:

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

Salida

inside method

Ámbito de variable de nivel de bloque en C#

Las variables declaradas dentro de un bloque —como bucles, sentencias if u otros ámbitos anidados— solo son accesibles dentro de ese bloque. Esto se conoce como ámbito de nivel de bloque.

using System;
namespace VariableScope {
    class Program {
        public void Display() {
            for (int i = 0; i <= 3; i++) {
                // i está confinado a este bucle for
            }
            // Console.WriteLine(i); // ❌ error en tiempo de compilación
        }
        static void Main(string[] args) {
            Program ps = new Program();
            ps.Display();
            Console.ReadLine();
        }
    }
}

Aquí, el contador del bucle i no puede referenciarse después del bucle, porque su ámbito termina con el bloque.

Lenguaje C

  1. Dominando punteros en C++: Conceptos, ejemplos y aplicaciones prácticas
  2. Variables, tipos de datos y constantes en C – Guía práctica
  3. Entendiendo las variables en C: Tipos, reglas de nomenclatura y gestión de memoria
  4. Entendiendo las reglas de alcance en C: Variables locales, globales y formales
  5. Dominando punteros en C: Pasos prácticos para programación avanzada
  6. Dominando Argumentos Variables en C: Guía Práctica
  7. Comprender las asignaciones en Verilog: tipos, sintaxis y mejores prácticas
  8. Modelado a nivel de puertas: Puentes entre esquemas de hardware y código Verilog
  9. Comprender e imprimir timescales de Verilog en cualquier alcance
  10. Dominando la palabra clave global en Python: Cómo y cuándo usarla
  11. Entendiendo los Tipos de Variables en Java: Guía Completa