Помощь в написании студенческих работ
Антистрессовый сервис

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

РефератПомощь в написанииУзнать стоимостьмоей работы

В приведенном на рис. 5.12 примере локальная переменная, А объявляется оператором Dim в соответствующей процедуре, она доступна внутри только этой процедуры. Поэтому не возникает конфликтов при использовании разными процедурами переменных с одним и тем же именем. Глобальные переменные доступны процедурам всех модулей проекта. Как показано на рис. 5.14, глобальная переменная, А определяется в секции… Читать ещё >

Область определения и время жизни переменных (реферат, курсовая, диплом, контрольная)

В Visual Basic есть три вида областей определения, характеризующих доступность переменной: локальная, переменная контейнера, глобальная.

Локальными называются переменные, определяемые внутри процедуры или функции. Они доступны только внутри этой процедуры.

В приведенном на рис. 5.12 примере локальная переменная А объявляется оператором Dim в соответствующей процедуре, она доступна внутри только этой процедуры. Поэтому не возникает конфликтов при использовании разными процедурами переменных с одним и тем же именем.

Puc. 5.12. Область определения локальных переменных При выходе из процедуры все ее локальные переменные сразу же удаляются из памяти, а при новом вызове этой процедуры переменные создаются вновь.

Puc. 5.12. Область определения локальных переменных При выходе из процедуры все ее локальные переменные сразу же удаляются из памяти, а при новом вызове этой процедуры переменные создаются вновь.

Переменные контейнера доступны только внутри соответствующего контейнера, т. е. формы, модуля или класса. Как показано на рис. 5.13, переменные контейнера Л и В определяются в секции (General) (Declarations) с помощью оператора Dim и доступны только внутри соответствующего контейнера.

Область определения переменных контейнера.

Рис. 5.13. Область определения переменных контейнера.

Глобальные переменные доступны процедурам всех модулей проекта. Как показано на рис. 5.14, глобальная переменная А определяется в секции (General) (Declarations) модуля. При этом вместо оператора Dim используется Public.

Область определения глобальных переменных.

Рис. 5.14. Область определения глобальных переменных Как говорилось выше, локально объявленные переменные при выходе из процедуры удаляются из памяти, а при новом вызове процедуры инициализируются заново. Их содержимое при этом не сохраняется, что не всегда желательно. Этого можно избежать путем расширения области определения, т. е. объявив переменную глобальной или как минимум переменной контейнера. Но это разрешает доступ к переменной из других процедур.

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

Объявление переменной как статической:

Static Имя_переменной [As Тип_переменной].

Пример

Private Sub Commandl_Click ().

Static a As Integer.

Dim b As Integer.

a=a+l.

b=b+l.

Print a.

Print b.

End Sub.

Статическая переменная а при каждом щелчке по кнопке Commandl увеличивается на 1. Нестатическая переменная Ъ при каждом щелчке инициализируется заново, поэтому ее значение при выходе всегда равно 1.

Чтобы объявить статическими все локальные переменные процедуры, следует записать ключевое слово Static в заголовке процедуры.

Полное описание общей процедуры:

[ОбластьВидимости] [Static] Sub имяПроцедуры (СписокПараме;

тров) Операторы.

End Sub.

Область видимости — это одно из двух ключевых слов: Public или Private. Они устанавливают, к какому классу принадлежит процедура: является ли она локальной (Private), т. е. доступной (видной) только внутри данного модуля и недоступной из других модулей, или глобальной (Public), т. е. доступной (видной) из других модулей.

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

Показать весь текст
Заполнить форму текущей работой