Область видимости переменных
Переменные класса (в том числе и закрытые поля), объявленные за пределами его методов или свойств, доступны для всех членов класса. Переменные, объявленные в методе или свойстве, являются локальными по отношению к этому методу или свойству.
Примечание
Переменные, объявленные на уровне модуля, доступны для всех классов, определенных в этом модуле, и для всего кода, обладающего доступом к этому модулю.
Таким образом, переменные уровня модуля являются глобальными по отношению к экземплярам классов. Пример:
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 надобность в этом небезопасном приеме отпала. За дополнительной информацией обращайтесь к разделу "Общие данные в классах" этой главы.