Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
программирование лекции.doc
Скачиваний:
56
Добавлен:
03.12.2018
Размер:
5 Мб
Скачать
☆

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

Программа на C# имеет блочную структуру. Каждый блок заключается в фигурные скобки {}. Блоки могут быть вложены друг в друга, а могут быть независимы друг от друга.

Объявления переменных разрешается помещать внутри любого блока. Переменные, описанные внутри метода класса, называются локальными переменными.

Важнейшими понятиями в C# являются области видимости, в частности, области видимости переменной. Эта область начинается в точке объявления переменной и распространяется до конца блока, в котором она описана. Переменная, как правило, видна в блоках внутренних по отношению к блоку ее объявления и не видна во внешних блоках, которые находятся за пределами видимости переменной.

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

Подобное положение отличает язык C# от других языков программирования, в которых отсутствует такое ограничение, и введено в язык C# для того, чтобы исключить связанные с такой ситуацией ошибки.

При выходе из области видимости значение переменной теряется. При повторном входе в блок (область видимости) переменная создается и инициализируется заново.

Пример:

using System;

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

int p=1,n;

Console.Write("Enter n ");

n = Convert.ToInt32(Console.ReadLine());

for (int i = 1; i <= n; i++)

p = p * i;

Console.WriteLine("p="+ p);

}

}

}

Рассмотрим приведенный пример. В программе метод Main содержит объявления переменных:

int p=1,n;

Обе переменные имеют тип int, причем переменная р инициализирована значением равным 1. Область видимости этих переменных – весь метод Main. Пременная i объявлена в заголовке цикла for, является его параметром, ей в заголовке цикла присвоено начальное значение, равное 1. Область видимости этой переменной ограничивается циклом.

4.5 Именованные константы

C# допускает введение в программу объектов, внешне похожих на переменные, но которые, в отличие от них, не могут изменять свое значение во время выполнения программы. Такие объекты называются константами. Имя константы – это синоним некоторого определенного значения, которое сопоставляется с этим идентификатором при описании.

Описание константы начинается со служебного слова Const, вслед за которым располагается тип, имя и значение константы:

Const int ALFA=35; const string OMEGA=”STROKA”;

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

Пусть описана константа:

Const double spred=27.561;

double r;

{

r=spred+7.5;

spred=r+2.5

}

Последний оператор присваивания spred=r+2.5 пытается осуществить запрещенное преобразование – изменить значение константы spred.

Использование в программе идентификаторов констант вместо записи конкретных значений считается хорошим стилем программирования, который делает программу более читабельной, более понятной. Кроме того, в такую программу легче внести изменения, связанные с изменением константы, так как в этом случае изменения вносятся в область определения констант и не требуют просмотра всей программы.

C# расширяет возможности определения констант, допуская в правой части константные выражения, строящиеся по тем же правилам, что и обычные выражения, но они должны быть вычислимыми в рассматриваемой точке программы:

Пример.

const string slovo=”error”;

const string result=slovo+”__”;

const int l=5;

const int v=25;

const int lv=(l+v);

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