Иллюстрированный самоучитель по Visual Basic .NET

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

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

Примечание
Переменные, объявленные на уровне модуля, доступны для всех классов, определенных в этом модуле, и для всего кода, обладающего доступом к этому модулю
.

Таким образом, переменные уровня модуля являются глобальными по отношению к экземплярам классов. Пример:

Module Modulel
Dim aGlobal As Integer = 37
Sub Main()
Dim anA As New А()
Dim aB As New B()
Console. ReadLine()
End Sub
Public Class A Sub New()
aGlobal =aGlobal +17 Console.WriteLine(aGlobal)
End Sub
End Class
Public Class В Sub New()
Console.WriteLine(aGlobal)
End Sub
End Class
End Module

В данном случае целая переменная aGlobal определяется на уровне модуля, поэтому изменения, вносимые в aGlobal классом А, будут восприняты классом В. Использовать переменные уровня модуля не рекомендуется – все взаимодействие между классами должно быть реализовано на уровне обмена сообщениями!

Примечание
В прежних версиях VB широко практиковалось хранение общих данных классов в глобальных переменных. В VB.NET надобность в этом небезопасном приеме отпала. За дополнительной информацией обращайтесь к разделу "Общие данные в классах" этой главы
.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.