Статические переменные
Исчезновение значения локальной переменной при выходе из процедуры – это хорошо, но не всегда удобно. Пусть мы хотим подсчитывать количество нажатий на кнопку Button1. Приведенная ниже процедура почти подходит, но она не будет накапливать счетчик, так как при каждом вызове процедуры счетчик обнуляется в результате инициализации:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Счетчик As Integer
Счетчик = Счетчик + 1
TextBox1.Text = Счетчик
End Sub
Делать счетчик модульной переменной не хочется, никому он кроме нас не нужен. Чтобы счетчик не обнулялся, объявим его статической переменной:
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Static Счетчик As Integer
Счетчик = Счетчик + 1
TextBox1.Text = Счетчик
End Sub
Статическая переменная объявляется не словом Dim, а словом Static. Это обычная локальная переменная, но с одним отличием: ее значение не уничтожается после выхода из процедуры и доживает до следующего ее вызова.
Теперь все в порядке. Счетчик накапливается. А для других процедур переменная невидима.
Пока об областях видимости нам достаточно. Более подробную информацию вы найдете в 21.9.