Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Ámbitos Local y Global | Métodos
Fundamentos de C#

bookÁmbitos Local y Global

El alcance de una variable es la parte del código donde podemos acceder a esa variable. En C#, existe un alcance global y muchos posibles alcances locales.

Cuando creamos una variable fuera de cualquier método, se puede acceder a ella desde casi cualquier parte del programa, por lo tanto, se dice que tiene alcance global:

main.cs

main.cs

copy
1234567891011121314151617181920
using System; namespace ConsoleApp { internal class Program { static int myVariable = 10; // Variable with a Global Scope static void testMethod() { // Accessing `myVariable` inside `testMethod` Console.WriteLine($"testMethod: {myVariable}"); } static void Main(string[] args) { // Accessing `myVariable` inside `Main` method Console.WriteLine($"Main Function: {myVariable}"); testMethod(); } } }

Nota

Cuando declaras una variable fuera de cualquier método, es importante incluir la palabra clave static antes de su declaración.

En el ejemplo anterior, accedimos a la variable myVariable tanto en el método Main como en el método testMethod. Sin embargo, esto no siempre es posible.

Una variable declarada dentro de un bloque de código solo es accesible dentro de ese bloque y de cualquier sub-bloque de código que contenga. Por ejemplo, una variable declarada dentro de un método solo es accesible directamente dentro de ese método. De manera similar, una variable declarada dentro de un bloque if, else if o else solo es accesible dentro de ese bloque. A este tipo de variable se le dice que tiene un alcance local.

Tómate un momento para revisar el siguiente código e intenta comprender cómo funciona:

main.cs

main.cs

copy
123456789101112131415161718192021222324252627282930313233
using System; namespace ConsoleApp { class Program { static int variable_1 = 1; static void Main(string[] args) { int variable_2 = 2; if (true) { int variable_3 = 3; Console.WriteLine(variable_1); Console.WriteLine(variable_2); Console.WriteLine(variable_3); } Console.WriteLine(variable_1); Console.WriteLine(variable_2); Console.WriteLine(variable_3); // ERROR HERE Console.WriteLine(variable_4); // ERROR HERE // Note: A variable cannot be used before it's defined in the code } static void myMethod() { int variable_4 = 4; Console.WriteLine(variable_1); Console.WriteLine(variable_2); // ERROR HERE Console.WriteLine(variable_3); // ERROR HERE Console.WriteLine(variable_4); } } }

En el código anterior hay cuatro variables:

  • variable_1 - alcance global;
  • variable_2 - alcance local, definida en el método Main;
  • variable_3 - alcance local, definida en el bloque if;
  • variable_4 - alcance local, definida en el método myMethod.

Es posible que el programa anterior no compile en absoluto, pero demuestra dónde se puede acceder a ciertas variables y dónde no. El área del código donde se puede acceder a una variable se llama alcance de esa variable.

  • variable_1 es una variable global, por lo que es accesible casi en todas partes;
  • variable_2 es accesible en todo el método Main, incluyendo los sub-bloques como la condición if;
  • variable_3 es accesible solo dentro del bloque if;
  • variable_4 es accesible solo dentro del bloque myMethod.
question mark

¿Qué palabra clave necesitamos usar para variables globales (variables declaradas fuera de cualquier método)?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 6. Capítulo 8

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

bookÁmbitos Local y Global

El alcance de una variable es la parte del código donde podemos acceder a esa variable. En C#, existe un alcance global y muchos posibles alcances locales.

Cuando creamos una variable fuera de cualquier método, se puede acceder a ella desde casi cualquier parte del programa, por lo tanto, se dice que tiene alcance global:

main.cs

main.cs

copy
1234567891011121314151617181920
using System; namespace ConsoleApp { internal class Program { static int myVariable = 10; // Variable with a Global Scope static void testMethod() { // Accessing `myVariable` inside `testMethod` Console.WriteLine($"testMethod: {myVariable}"); } static void Main(string[] args) { // Accessing `myVariable` inside `Main` method Console.WriteLine($"Main Function: {myVariable}"); testMethod(); } } }

Nota

Cuando declaras una variable fuera de cualquier método, es importante incluir la palabra clave static antes de su declaración.

En el ejemplo anterior, accedimos a la variable myVariable tanto en el método Main como en el método testMethod. Sin embargo, esto no siempre es posible.

Una variable declarada dentro de un bloque de código solo es accesible dentro de ese bloque y de cualquier sub-bloque de código que contenga. Por ejemplo, una variable declarada dentro de un método solo es accesible directamente dentro de ese método. De manera similar, una variable declarada dentro de un bloque if, else if o else solo es accesible dentro de ese bloque. A este tipo de variable se le dice que tiene un alcance local.

Tómate un momento para revisar el siguiente código e intenta comprender cómo funciona:

main.cs

main.cs

copy
123456789101112131415161718192021222324252627282930313233
using System; namespace ConsoleApp { class Program { static int variable_1 = 1; static void Main(string[] args) { int variable_2 = 2; if (true) { int variable_3 = 3; Console.WriteLine(variable_1); Console.WriteLine(variable_2); Console.WriteLine(variable_3); } Console.WriteLine(variable_1); Console.WriteLine(variable_2); Console.WriteLine(variable_3); // ERROR HERE Console.WriteLine(variable_4); // ERROR HERE // Note: A variable cannot be used before it's defined in the code } static void myMethod() { int variable_4 = 4; Console.WriteLine(variable_1); Console.WriteLine(variable_2); // ERROR HERE Console.WriteLine(variable_3); // ERROR HERE Console.WriteLine(variable_4); } } }

En el código anterior hay cuatro variables:

  • variable_1 - alcance global;
  • variable_2 - alcance local, definida en el método Main;
  • variable_3 - alcance local, definida en el bloque if;
  • variable_4 - alcance local, definida en el método myMethod.

Es posible que el programa anterior no compile en absoluto, pero demuestra dónde se puede acceder a ciertas variables y dónde no. El área del código donde se puede acceder a una variable se llama alcance de esa variable.

  • variable_1 es una variable global, por lo que es accesible casi en todas partes;
  • variable_2 es accesible en todo el método Main, incluyendo los sub-bloques como la condición if;
  • variable_3 es accesible solo dentro del bloque if;
  • variable_4 es accesible solo dentro del bloque myMethod.
question mark

¿Qué palabra clave necesitamos usar para variables globales (variables declaradas fuera de cualquier método)?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 6. Capítulo 8
some-alt