Иллюстрированный самоучитель по VB.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 надобность в этом небезопасном приеме отпала. За дополнительной информацией обращайтесь к разделу «Общие данные в классах» этой главы.



Содержание раздела