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

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

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






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

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; просмотров: 523. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

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

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

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

САНИТАРНО-МИКРОБИОЛОГИЧЕСКОЕ ИССЛЕДОВАНИЕ ВОДЫ, ВОЗДУХА И ПОЧВЫ Цель занятия.Ознакомить студентов с основными методами и показателями...

Меры безопасности при обращении с оружием и боеприпасами 64. Получение (сдача) оружия и боеприпасов для проведения стрельб осуществляется в установленном порядке[1]. 65. Безопасность при проведении стрельб обеспечивается...

Весы настольные циферблатные Весы настольные циферблатные РН-10Ц13 (рис.3.1) выпускаются с наибольшими пределами взвешивания 2...

Растягивание костей и хрящей. Данные способы применимы в случае закрытых зон роста. Врачи-хирурги выяснили...

ФАКТОРЫ, ВЛИЯЮЩИЕ НА ИЗНОС ДЕТАЛЕЙ, И МЕТОДЫ СНИЖЕНИИ СКОРОСТИ ИЗНАШИВАНИЯ Кроме названных причин разрушений и износов, знание которых можно использовать в системе технического обслуживания и ремонта машин для повышения их долговечности, немаловажное значение имеют знания о причинах разрушения деталей в результате старения...

Различие эмпиризма и рационализма Родоначальником эмпиризма стал английский философ Ф. Бэкон. Основной тезис эмпиризма гласит: в разуме нет ничего такого...

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