Студопедия — Объявление переменных
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

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






Для указания типа переменной используются операторы объявления с, например, следующим синтаксисом:

Dim variablename [ As type ]

Здесь variablename — имя объявляемой переменной, type — тип данных. Переменные, объявленные с помощью оператора Dim внутри процедуры, существуют только во время выполнения этой процедуры. Такие переменные называются локальными. В различных процедурах можно использовать локальные переменные с одинаковыми именами. Примеры объявления переменных:

Dim stName1 As String

Dim inName2, inName3 As Integer

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

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

Function ToMorrow()

ToDay = Now()

ToMorrow = ToDay + 1

End Function

Этот способ использования переменных без предварительного объявления очень прост, но потенциально опасен тем, что вы можете делать ошибки, которые трудно находить. Дело в том, что при использовании переменных без предварительного объявления вы не пользуетесь средствами контроля редактора Visual Basic. Если вы объявили переменную и в дальнейшем в каком-либо операторе изменили (по ошибке) регистр какого-нибудь символа, редактор автоматически изменит написание переменной на объявленое. При этом уже нет необходимости вам постоянно переключаться с регистра на регистр. Можно работать с одним регистром. Редактор сам будет изменять регистры в соответствии с объявленным написанием переменной.

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

Explicit-объявление

Работая в редакторе Visual Basic, вы можете задать такой режим, при котором у вас не будет возможности использовать ранее необъявленные переменные. Таким образом, если вы случайно введете имя переменной с ошибкой, это будет воспринято системой, как попытка использовать ранее небъявленную переменную, и при компиляции появится сообщение об ошибке (см. рис. 5.6).

Рис.5. 6

При наличии объявленияOption Explicit попытка использовать ранее небъявленную переменную приводит к сообщению об ошибке.

В окне редактора, приведенном на рис. 5.6, самая первая строка содержит оператор Option Explicit. Именно этот оператор является сигналом для проверки вашего кода на наличие имен переменных, которые вы забыли объявить. Вы можете вставить в модуль этот оператор самостоятельно, просто вводя его с клавиатуры, как обычный текст. Но в этом случае вам нужно будет выполнять эту операцию для каждого нового модуля. Если вы хотите, чтобы оператор Option Explicit автоматически вставлялся в каждый ваш модуль, выпоните следующее:

· Из меню Tools выберите Options.

· Щелкните на ярлычке вкладки Editor.

· Установите флажок Require Variable Declaration.

Для объявления переменных, кроме оператора Dim, можно использовать также операторы Private, Public и Static. Например:

Private inI As Integer

Public cuSell As Currency

Static stMyName As String

Private inII As Integer, doSq As Double

Область действия переменной

Область действия (scope) переменной — одно из наиболее важных понятий в программировании. Переменная может быть доступна не для всего кода приложения (не для всех модулей), не для всех процедур одного и того же модуля. Область действия переменной определяется способом ее объявления.

В зависимости от того, как объявлена переменная, она может иметь область процедурного (локальная) или модульного уровня.

Область действия Закрытые (Private) Открытые (Public)
Процедурного уровня (Procedure-level) Переменные доступны только для процедуры, в которой они объявлены. Внутри процедуры нельзя объявлять Public-переменные.
Модульного уровня (Module-level) Переменные доступны только для модуля, в котором они объявлены. Переменные доступны для всех модулей.

Переменные процедурного уровня «распознаются» только в процедуре, в которой они объявляются. Они также называются локальными. Такие переменные объявляются при помощи ключевых слов Dim и Static. Например:

Dim intNunber As Integer

Static intPrt As Integer

Значение локальной переменной, объявленной с помощью Static, сохраняется все время работы приложения. С другой стороны, локальная переменная, объявленная с помощью Dim, существует только во время выполнения процедуры, в которой объявлена переменная. Локальные переменные необходимы для всяких временных вычислений или удобного представления длинных арифметических выражений. Как только процедура с локальными переменными выполнится, память будет освобождена от локальных переменных.

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

Private strTemp As String

Private intTemp As Integer

На модульном уровне ключевые слова Private и Dim имеют одинаковое действие, но Private предпочтительней, поскольку, контрастируя со словом Public, делает код более понятным.

Чтобы сделать переменную доступной для всех модулей, используйте при объвлении переменной ключевое слово Public. Значения таких переменных доступны всем процедурам приложения. Как и переменные модульного уровня, public-переменные объявляются в секции Declarations в верхней части модуля. Нельзя объявлять public-переменные в коде процедуры. Например:

Public intTemp As Integer

Имена переменных, объявленных с помощью ключевого слова Public в различных модулях, могут совпадать. В этом случае для правильной ссылки на переменную следует использовать не только ее имя, но и имя модуля. Например, если public-переменная strFirstName типа String объявлена как в модуле ModuleStart, так и в модуле формы FormMain, то для правильной ссылки на эти (их теперь — две) переменные следует использовать выражения ModuleStart.strFirstName и FormMain.strFirstName.







Дата добавления: 2015-08-29; просмотров: 527. Нарушение авторских прав; Мы поможем в написании вашей работы!



Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

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

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Ваготомия. Дренирующие операции Ваготомия – денервация зон желудка, секретирующих соляную кислоту, путем пересечения блуждающих нервов или их ветвей...

Билиодигестивные анастомозы Показания для наложения билиодигестивных анастомозов: 1. нарушения проходимости терминального отдела холедоха при доброкачественной патологии (стенозы и стриктуры холедоха) 2. опухоли большого дуоденального сосочка...

Сосудистый шов (ручной Карреля, механический шов). Операции при ранениях крупных сосудов 1912 г., Каррель – впервые предложил методику сосудистого шва. Сосудистый шов применяется для восстановления магистрального кровотока при лечении...

Философские школы эпохи эллинизма (неоплатонизм, эпикуреизм, стоицизм, скептицизм). Эпоха эллинизма со времени походов Александра Македонского, в результате которых была образована гигантская империя от Индии на востоке до Греции и Македонии на западе...

Демографияда "Демографиялық жарылыс" дегеніміз не? Демография (грекше демос — халық) — халықтың құрылымын...

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

Studopedia.info - Студопедия - 2014-2024 год . (0.012 сек.) русская версия | украинская версия