Определяет
статическую память для
переменных, объектов и массивов; память выделяется при запуске программы и
освобождается после выхода. Объекты создаются когда они определены и
уничтожаются при выходе из программы.
При объявлении статических массивов, только
числовые литералы,
константы или
перечисления могут использоваться в качестве
подстрочного диапазона значений. Статические массивы переменной длины должны
быть объявлены пустыми (без списка индексов диапазона) и размеряться с
помощью
ReDim ранее.
В итеративных и рекурсивных блоках таких, как циклы,
операторы управления потоком или
процедуры, статические переменные, объекты и локальные массивы в блоке
гарантированно занимают то же хранилище для всех экземпляров блока.
Например, процедуры, которые вызывают себя - прямо или косвенно - это одни и
те же экземпляры своих локальных статических переменных.
Статическая переменная может быть введена в работу только с постоянным
значением: ее стартовое значение устанавливается в начале программы до
того, как код выполняется, и поэтому оно не может зависеть от каких-либо
переменных или функций.
Когда используются декларации процедур-элементов и на уровне модуля,
Static
определяет
статическую память для
всех локальных переменных, объектов и массивов.
Только в объявлении переменной уровня модуля, модификатор
Shared
может быть использован с ключевым словом
Static чтобы
сделать на уровне модуля статические переменные видные внутри процедур.
При использовании UDT, каждая
Static переменная-элемент
должна четко определяться, а также декларироваться. Декларация внутри
UDT является прототипом, который является видимым
для каждого модуля, видя объявление
UDT (как с
методами). Определение - что должно быть сделано вне кода объявления типа, и
только один раз в одном модуле - выделяет статическое пространство и,
возможно, инициализирует статическую переменную.
Static переменная-элемент видна на протяжении всей программы
(внутри любой процедуры), даже если модификатор
Shared
не указан в определении (
Static и
Shared
бесполезны в определении). Так,
Static переменные-элементы
могут быть вызваны непосредственно в любом месте в коде или на объектах типа
typename.
Static (элемент) также
используется в описаний процедур-элементов для указания статических
процедур-элементов.
См. также