Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие.doc
Скачиваний:
153
Добавлен:
02.05.2014
Размер:
1.63 Mб
Скачать

3.3.2. Объявление переменных

Объявить переменную — значит заранее сообщить программе о создании переменной, указав ее имя. Переменные объявляются путем включения в текст программы инструкции Dim (сокращение слова Dimension — размер):

Dim имя_переменной [As тип]

После того как переменные объявлены, их можно использовать в любом месте процедуры. С целью экономии места можно объявить несколько переменных в одной строке, например, как в следующей инструкции:

Dim Fakt_cena As Currency, Fakt_kol As Integer

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

Имя переменной должно удовлетворять требованиям, изложенным во введении.

Необязательное предложение As тип в инструкции Dim позволяет определять тип данных или объектный тип объявляемой переменной. Тип данных определяет тип информации, содержащейся в переменной.

Имеются и другие способы объявления переменных:

• объявление переменной в разделе Описания модуля (формы, отчета, стандартного или класса), вместо объявления внутри процедуры, делает переменную доступной всем процедурам в модуле;

• объявление переменной с использованием ключевого слова Public делает ее доступной в любом месте приложения;

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

Неявное объявление переменных. Объявлять переменную перед использованием ее необязательно. Например, в следующей функции переменная TempVal явно не объявляется:

Function TestFunc(num)

TempVal = Abs(num)

TestFunc = Sqr(TempVal)

End Function

Встретив имя, Visual Basic автоматически создает с таким именем переменную, которую можно использовать, как если бы она была объявлена явно. Хотя, с одной стороны, это удобно, однако в случае мелких опечаток в имени переменной это может приводить к трудноуловимым ошибкам в коде. Например, предположим, что предыдущая функция пере­писана еще раз:

Function TestFunc(num)

TempVal = Abs(num)

TestFunc = Sqr(TemVal)

End Function

На первый взгляд, все выглядит одинаково. Но так как в последней строке имя пере­менной TempVal указано с ошибкой, эта функция будет всегда возвращать ноль. Когда Visual Basic сталкивается с новым именем, он не в состоянии определить, что подразуме­вается — фактическое неявное объявление новой переменной или это имя существующей переменной с ошибкой. В этом случае он создает новую переменную с таким именем, инициализируя ее нулем.

Явное объявление переменных. Чтобы избежать проблемы ошибок в именах переменных, можно предусмотреть, чтобы Visual Basic выдавал предупреждение всякий раз, когда он сталкивается с именем, не объявленным явно как переменная.

Чтобы гарантировать явное объявление переменных необходимо в разделе Описания модуля класса, формы или стандартного поместить такую инструкцию:

Option Explicit

или

В меню Сервис выбрать Параметры, открыть вкладку Модуль и установить флажок Явное описание переменных. После этого Visual Basic будет автоматически вставлять инструкцию Option Explicit в начале любых новых модулей, но не в модулях, уже созданных. Следовательно, к существующим модулям проекта Option Explicit нужно добавить вручную.

Если бы эта инструкция была в модуле, содержащем функцию TestFunc, Visual Basic интерпретировал бы TempVal и TemVal как необъявленные переменные и сгенерировал ошибки для них обеих. После этого можно было бы объявить TempVal явно:

Function TestFunc(num)

Dim TempVal

TempVal = Abs(num)

TestFunc = Sqr(TemVal)

End Function

Теперь проблема будет ясна сразу, так как Visual Basic выведет на экран сообщение об ошибке для неправильно напечатанной переменной TemVal. Так как инструкция Option Explicit безотказно отслеживает эти виды ошибок, использовать его никогда не будет лишним.

Оператор Option Explicit работает только на уровне модуля; его следует поместить в раздел Описания каждого модуля любого типа — стандартногоили класса.

Соседние файлы в предмете Базы данных