Локальні та Глобальні Області Видимості
Свайпніть щоб показати меню
Область видимості змінної — це частина коду, в якій ми можемо отримати доступ до цієї змінної. У C# існує глобальна область видимості та багато можливих локальних областей.
Коли ми створюємо змінну поза будь-яким методом, до неї можна звертатися майже з будь-якої частини програми, тому кажуть, що вона має глобальну область видимості:
main.cs
1234567891011121314151617181920using 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
123456789101112131415161718192021222324252627282930313233using 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.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат