Static (Visual Basic)
Указывает, что одна или несколько объявленных локальных переменных будут продолжать существовать и сохранять последние значения после завершения процедуры, в которой они объявлены.
Замечания
Как правило, локальная переменная в процедуре перестает существовать сразу после остановки процедуры. Статическую переменную продолжает существовать и сохраняет последнее значение. При следующем вызове процедуры переменная не инициализирована, и она по-прежнему содержит последнее значение, назначенное ему. Статическую переменную продолжает существовать в течение времени существования класса или модуля, в который он определен.
Правила
Контекст объявления. Можно использовать
Static
только для локальных переменных. Это означает, что контекст объявления дляStatic
переменной должен быть процедурой или блоком процедуры, и он не может быть исходным файлом, пространством имен, классом, структурой или модулем.Нельзя использовать
Static
внутри процедуры структуры.Типы данных локальных
Static
переменных не могут быть выведены. Дополнительные сведения см. в разделе "Вывод локальных типов".Объединенные модификаторы. Нельзя указать
Static
вместе сReadOnly
,Shadows
илиShared
в том же объявлении.
Поведение
При объявлении статической переменной в процедуре Shared
для всего приложения доступно только одна копия статической переменной. Вы вызываете процедуру Shared
с помощью имени класса, а не переменной, указывающей на экземпляр класса.
При объявлении статической переменной в процедуре, которая не Shared
является, для каждого экземпляра класса доступна только одна копия переменной. Вы вызываете не общую процедуру с помощью переменной, указывающей на конкретный экземпляр класса.
Пример
В следующем примере показано использование функции Static
.
Function updateSales(ByVal thisSale As Decimal) As Decimal
Static totalSales As Decimal = 0
totalSales += thisSale
Return totalSales
End Function
Переменная Static
totalSales
инициализирована только один раз. Каждый раз, когда вы вводите updateSales
, totalSales
по-прежнему имеет последнее значение, которое вы вычисляете для него.
Модификатор Static
можно использовать в этом контексте: