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

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

Suggested prompts:

Can you explain the difference between global and local scope in more detail?

Can you give an example of when to use a global variable versus a local variable?

What happens if I try to access a variable outside of its scope?

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