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

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

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

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

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

Примітка

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

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

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

Зверніть увагу на наступний код і спробуйте зрозуміти, як він працює:

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

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

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

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

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

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

Select the correct answer

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

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

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

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

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Awesome!

Completion rate improved to 1.59

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

Свайпніть щоб показати меню

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

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

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

Примітка

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

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

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

Зверніть увагу на наступний код і спробуйте зрозуміти, як він працює:

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

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

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

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

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

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

Select the correct answer

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

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

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

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