Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Локальні та Глобальні Області Видимості | Методи
Основи C#
course content

Зміст курсу

Основи C#

Основи C#

1. Початок роботи
3. Структури управління
4. Цикли
5. Масиви
6. Методи

bookЛокальні та Глобальні Області Видимості

Область видимості змінної - це частина коду, де ми можемо отримати доступ до цієї змінної. У C# існує глобальна область видимості та багато можливих локальних областей.

Коли ми створюємо змінну поза будь-яким методом, до неї можна отримати доступ майже з будь-якого місця в програмі, тому вважається, що вона має глобальну область видимості. Наприклад:

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

Примітка

Коли ми створюємо змінну поза будь-яким методом, нам потрібно додати ключове слово static перед оголошенням.

У наведеному вище коді ми змогли отримати доступ до змінної myVariable як у методі Main, так і в testMethod. Однак це не завжди так.

Змінна, оголошена всередині блоку коду, доступна лише всередині цього блоку коду та підблоків коду, якщо такі є. Наприклад, змінна, оголошена всередині методу, буде доступна безпосередньо лише всередині цього методу. Аналогічно, змінна, оголошена всередині блоку if, else if або else, буде доступна лише всередині цього блоку. Така змінна має локальну область видимості.

Це гарна вправа для читання коду, щоб подивитися на наступний код і спробувати його зрозуміти:

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

У наведеному вище коді є чотири змінні:

  • variable_1 - Глобальна область видимості;
  • variable_2 - Локальна область видимості, визначена в методі Main;
  • variable_3 - Локальна область видимості, визначена в блоці if;
  • variable_4 - Локальна область видимості, визначена в методі myMethod;

Наведена програма може взагалі не компілюватися, але демонструє, де певні змінні можуть бути доступні, а де ні. Область коду, де змінна може бути доступна, називається областю видимості цієї змінної.

  • variable_1 є глобальною змінною, тому вона доступна майже всюди;
  • variable_2 доступна протягом усього методу Main, включаючи підблоки, такі як умова if;
  • variable_3 доступна лише всередині блоку if;
  • variable_4 доступна лише всередині блоку myMethod;
Яке ключове слово потрібно використовувати для глобальних змінних (змінних, оголошених поза будь-яким методом)?

Яке ключове слово потрібно використовувати для глобальних змінних (змінних, оголошених поза будь-яким методом)?

Виберіть правильну відповідь

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 6. Розділ 8
some-alt