Gestionar el alcance de las variables
Scope es la región del código donde existe una variable y se puede usar. Comprender el ámbito le ayuda a escribir métodos que no interfieren accidentalmente entre sí y le ayuda a evitar una clase completa de errores confusos.
Variables locales
Una variable creada dentro de un método es una variable local. Solo existe mientras se ejecuta el método y no se puede ver desde fuera del método.
int CalculateTotal(int price, int tax)
{
int total = price + tax; // total is local to this method
return total;
}
CalculateTotal(10, 2);
Console.WriteLine(total); // Compile error: total doesn't exist here
Cada llamada a un método obtiene su propio conjunto de variables locales, por lo que los métodos no sobrescriben accidentalmente los datos de los demás.
Ámbito de bloque
Las variables declaradas dentro de un bloque, como una if instrucción o un bucle, solo existen dentro de ese bloque.
if (true)
{
int message = 42;
Console.WriteLine(message); // OK: message exists in this block
}
Console.WriteLine(message); // Compile error: message doesn't exist here
Note
C# no tiene un equivalente directo a las variables globales de Python dentro de un solo script. Compartir el estado entre los métodos de C# normalmente significa almacenarlo en un campo de clase, un tema para un módulo posterior. Por ahora, prefiere pasar valores como parámetros y obtener resultados con valores devueltos.
¿Por qué importa el ámbito?
- Las variables locales mantienen los métodos independientes. Una variable de un método no puede afectar a otra.
- El ámbito de bloque evita que los valores temporales se filtren en el resto del método.
- Si varios métodos necesitan compartir un valor, páselo como parámetro y devuelva el resultado actualizado, en lugar de confiar en una variable declarada en otro lugar.