csharp-ambito-variables

Qué es el ámbito de las variables en C#

El alcance de una variable se refiere a la parte del programa donde la variable es accesible. En C#, las variables pueden tener diferentes alcances dependiendo de dónde se declaren.

Variables locales

Las variables locales se declaran dentro de un método y solo son accesibles dentro de ese método. Su ciclo de vida comienza cuando el método es invocado y termina cuando el método finaliza.

public void MetodoEjemplo()
{
    int numero = 10; // Variable local, solo existe en este método
    
    Console.WriteLine(numero); // ✔️ aqui puedes usarla
}

numero = 5; // ❌ esto daría un error, aquí no existe

Variables de instancia

Las variables de instancia (también llamados campos), se declaran dentro de una clase pero fuera de cualquier método. Son accesibles por todos los métodos de la clase y su ciclo de vida es el mismo que el de la instancia de la clase.

public class Persona
{
    public string nombre; // Variable de instancia

    public void MostrarNombre()
    {
        Console.WriteLine(nombre);  // ✔️ aqui puedes usarla
    }
}

nombre = "Luis"; // ❌ esto daría un error, nombre no existe aquí

Persona persona = new Persona();
persona.nombre = "Luis" // ✔️ esto si funciona

Variables estáticas

Las variables estáticas se declaran con la palabra clave static y pertenecen a la clase (en lugar de a una instancia específica). Son accesibles sin crear una instancia de la clase y su ciclo de vida dura hasta que finaliza la aplicación.

public class Contador
{
    public static int ContadorGlobal; // Variable estática

    public void Incrementar()
    {
        contadorGlobal++;  // ✔️ aqui puedes usarla
    }
}

ContadorGlobal = 10;  // ❌ esto daría un error, nombre no existe aquí

Contador.ContadorGlobal = 10; // ✔️ esto si funciona