Поделиться через


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

Обновлен: Ноябрь 2007

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

Visual Basic 6.0

В Visual Basic 6.0 любая переменная, объявленная в процедуре, ограничена областью действия процедуры, поэтому доступ к ней возможен из любого места в этой процедуре. Если переменная объявлена внутри блока — т. е. набора операторов, заканчивающегося оператором End, Loop или Next, то переменная доступна и за пределами блока.

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

For I = 1 To 10

Dim N As Long = 0

' N has procedure scope although it was declared within a block.

N = N + Incr(I)

Next I

W = Base ^ N

' N is still visible outside the block it is declared in.

Visual Basic 2005

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

Dim N As Long = 0
' N is declared outside the block and has procedure scope. 
For I As Integer = 1 To 10
    ' I is declared by the For statement and therefore within the block. 
    N = N + Incr(I)
Next I
w = Base ^ N
' N is visible outside the block but I is not. 

Так как оператор For объявляет I как часть блока For, I имеет только область видимости блока.

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

См. также

Основные понятия

Сводка изменений поддержки элементов программирования