СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Область видимости (контекст) переменных

Категория: Информатика

Нажмите, чтобы узнать подробности

Просмотр содержимого документа
«Область видимости (контекст) переменных»

Каждая переменная доступна в рамках определенного контекста или области видимость. Вне этого контекста переменная уже не существует.

Существуют различные контексты:

  • Контекст класса. Переменные, определенные на уровне класса, доступны в любом методе этого класса

  • Контекст метода. Переменные, определенные на уровне метода, являются локальными и доступны только в рамках данного метода. В других методах они недоступны

  • Контекст блока кода. Переменные, определенные на уровне блока кода, также являются локальными и доступны только в рамках данного блока. Вне своего блока кода они не доступны.

Например, пусть класс Program определен следующим образом:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

class Program // начало контекста класса

{

    static int a = 9; // переменная уровня класса

     

    static void Main(string[] args) // начало контекста метода Main

    {

        int b = a - 1; // переменная уровня метода

 

        { // начало контекста блока кода

             

            int c = b - 1; // переменная уровня блока кода

 

        }  // конец контекста блока кода, переменная с уничтожается

 

        //так нельзя, переменная c определена в блоке кода

        //Console.WriteLine(c);

 

        //так нельзя, переменная d определена в другом методе

        //Console.WriteLine(d);

 

        Console.Read();

 

    } // конец контекста метода Main, переменная b уничтожается

 

    void Display() // начало контекста метода Display

    {

        // переменная a определена в контексте класса, поэтому доступна

        int d = a + 1;

 

    } // конец конекста метода Display, переменная d уничтожается

 

} // конец контекста класса, переменная a уничтожается

Здесь определенно четыре переменных: a, b, c, d. Каждая из них существует в своем контексте. Переменная a существует в контексте всего класса Program и доступна в любом месте и блоке кода в методах Main и Display.

Переменная b существует только в рамках метода Main. Также как и переменная d существует в рамках метода Display. В методе Main мы не можем обратиться к переменной d, так как она в другом контексте.

Переменная c существует только в блоке кода, границами которого являются открывающая и закрывающая фигурные скобки. Вне его границ переменная c не существует и к ней нельзя обратиться.

Нередко границы различных контекстов можно ассоциировать с открывающимися и закрывающимися фигурными скобками, как в данном случае, которые задают пределы блока кода, метода, класса.

При работе с переменными надо учитывать, что локальные переменные, определенные в методе или в блоке кода, скрывают переменные уровня класса, если их имена совпадают:

1

2

3

4

5

6

7

8

9

10

class Program

{

    static int a = 9; // переменная уровня класса

     

    static void Main(string[] args)

    {

        int a = 5; // скрывает переменную a, которая объявлена на уровне класса

        Console.WriteLine(a); // 5

    }

}

При объявлении переменных также надо учитывать, что в одном контексте нельзя определить несколько переменных с одним и тем же именем.