- •Лекция 3.Требование явного объявления переменных. Область действия переменных. Константы. Правила написания констант. Операции и знаки операций Требование явного объявления переменных
- •Присваивание переменной (assigning the variable)
- •Область действия или видимости (scope - скауп) переменных
- •Использование переменных с одним и тем же именем в различных уровнях области действия
- •Правила того, как долго переменные удерживают свое значение
- •Константы
- •Создание именованных констант
- •Область действия констант
- •Написание констант
- •Операции и знаки операций
- •Получение приоритета:
Использование переменных с одним и тем же именем в различных уровнях области действия
Имя переменной уникально в области ее действия. Однако можно иметь переменные с одним и тем же именем на разных уровнях действия. Когда переменные имеют одно и то же имя, но разные области действия, VB использует переменную с наиболее локальной областью действия.
Например, к предыдущему листингу добавляется:
Sub AnotherMessage ( )
Dim HelloMsg 'локальное объявление
HelloMsg = "Привет"
MsgBox HelloMsg, , " Еще одно окно сообщения"
End Sub
В первых двух процедурах переменная внутри процедуры не объявляется, поэтому используется переменная модульного уровня. В последней процедуре работает локальная переменная HelloMsg, объявленная в процедуре, а переменная модульного уровня с этим же именем в этой процедуре недоступна.
Для того чтобы переменная имела видимость в пределах модуля при ее объявлении используется, как правило, оператор Private, а не Dim. Хотя Dim также используется, когда требуется обеспечить совместимость программ с более ранними версиями VB.
Объявление переменной с помощью слова Global, вместо операторов Private и Dim, делает ее доступной в пределах всего проекта. При этом переменная также должна быть объявлена в разделе объявлений модуля.
Для открытия глобальной процедуры используется оператор Public, например: Public Sub Password( )
По умолчанию при открытии глобальной процедуры слова Public или Global, как правило, опускаются, и запись выглядит: Sub Password( ).
Для открытия локальной процедуры обязательно используется слово Private. Например: Private Sub Form_Load( )
Ключевое слово Static (статическая переменная) в объявлении переменной используется, когда необходимо, чтобы переменная оставалась в памяти даже тогда, когда процедура закончила работу, чтобы использовать ее полученное значение. Объявлять переменные словом Static можно только внутри процедуры.
Если необходимо, чтобы все переменные в процедуре сохраняли свои значения, даже когда процедура не выполняется, следует поместить слово Static в объявлении самой процедуры перед ключевым словом, определяющим тип процедуры (т. е., перед оператором Sub), например:
Private Static Sub cmdStart_Click( )
Правила того, как долго переменные удерживают свое значение
Переменные процедурного уровня создаются каждый раз, когда процедура начинает выполняться, и уничтожаются, когда процедура перестает выполняться.
Значения, присвоенные переменным, сохраняются только до тех пор, пока переменная в области ее действия является активной.
Локальная переменная является неопределенной (out of context), пока процедура, объявляющая ее не начинает выполняться. После выполнения процедуры переменная опять становится неопределенной.
Значения переменных, объявленных в модуле, удерживаются, пока выполняются процедуры в этом модуле.
Константы
В отличие от переменной значение константы никогда не изменяется.
Константы называют литеральными константами (literal constants), если их абсолютное значение записывается непосредственно в программный код.
В VB литеральные константы используются как аргументы для процедур и в математических или операциях сравнения: численные (числа и даты); строковые и логические константы.
Например, литеральная константа может записываться в операторе, как: 56,75 или "Обязательно", или True.
VB позволяет создавать, кроме литеральных, именованные константы (named constants). Такая константа, подобно переменной, имеет конкретное заданное ей имя, которое начинается со слова const. VB подставляет в то место оператора, где встречает именованную константу, ее конкретное значение.
Как и в случае с литеральной константой, единственным способом изменить значение именованной константы является редактирование исходного кода VB.
Именованные константы можно использовать для повышения читабельности сложных, трудно запоминаемых процедур или значений, которые трудно понять, а также для более простого обновления и сопровождения процедур и программ, в частности: при константе налоговой ставки возможно ее изменение в будущем. Если поместить ее как литеральную константу, то может оказаться затруднительным изменение программы, т. к. придется менять все многократные вхождения ставки. При именованной константе достаточно изменить значение ставки налога в одном месте, а именно, в операторе, объявляющем именованную константу.