Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Ámbitos Locales y Globales | Métodos
Conceptos básicos de C#
course content

Contenido del Curso

Conceptos básicos de C#

Conceptos básicos de C#

1. Comenzando
2. Manejo de Tipos de Datos
3. Estructuras de Control
4. Bucles
5. Arrays
6. Métodos

bookÁmbitos Locales y Globales

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

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

cs

main

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

Al crear una variable fuera de cualquier método, necesitamos agregar la palabra clave static antes de la declaración.

En el código anterior, pudimos acceder a la variable myVariable tanto en el método Main como en el testMethod. Sin embargo, esto no siempre es el caso.

Una variable declarada dentro de un bloque de código solo está disponible dentro de ese bloque de código, y los sub-bloques de código, si los hay. Por ejemplo, una variable declarada dentro de un método solo será directamente accesible dentro de ese método. De manera similar, una variable declarada dentro de un bloque if, else if o else solo será accesible dentro de ese bloque. Se dice que tal variable tiene un ámbito local.

Es un buen ejercicio de lectura de código mirar el siguiente código e intentar entenderlo:

cs

main

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;

El programa anterior puede que no compile en absoluto, pero demuestra dónde se pueden acceder a ciertas variables y dónde no. El área de código donde se puede acceder a una variable se llama el 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, incluidos 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;
¿Qué palabra clave necesitamos usar para variables globales (variables declaradas fuera de cualquier método)?

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

Selecciona la respuesta correcta

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

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