Поделиться через


Практическое руководство. Управление доступностью переменной (Visual Basic)

Управлять доступом к переменной можно, указывая уровень доступа к ней.Уровень доступа определяет, какой код имеет разрешение на чтение или запись в переменную.

  • Переменные-члены (определяются на уровне модуля и вне любых процедур) по умолчанию имеют общий уровень доступа, в результате чего любой код, в котором они видны, может к ним обращаться.Это положение можно изменить, указав модификатор доступа.

  • Локальные переменные (определяются внутри процедуры) обычно общедоступны, хотя доступ к ним имеет только код внутри процедуры.Нельзя изменить уровень доступа локальной переменной, но можно изменить уровень доступа содержащей ее процедуры.

Дополнительные сведения см. в разделе Уровни доступа в Visual Basic.

Доступ с модификаторами Private и Public

Чтобы сделать переменную доступной только из модуля, класса или структуры, выполните следующие действия:

  1. Поместите оператор Оператор Dim (Visual Basic) для переменной внутри модуля, класса или структуры, но вне любой процедуры.

  2. Включите в оператор Dim ключевое слово Private (Visual Basic).

    Теперь можно считать или записывать значение переменной из любого места внутри модуля, класса или структуры, но не из-за их пределов.

Чтобы сделать переменную доступной из любого кода, в котором она видна, выполните следующие действия:

  1. В случае переменной-члена поместите инструкцию Dim для переменной внутрь модуля, класса или структуры, но вне любой процедуры.

  2. Включите в оператор Dim ключевое слово Public (Visual Basic).

    Теперь можно считывать и записывать значение переменной из любого кода, взаимодействующего со сборкой.

-или-

  1. В случае локальной переменной поместите инструкцию Dim для переменной внутрь процедуры.

  2. Не включайте зарезервированное слово Public в инструкцию Dim.

    Теперь можно считать или записывать значение переменной из любого места внутри процедуры, но не из-за ее пределов.

Доступ с модификаторами Protected и Friend

Можно ограничить уровень доступа переменной ее классом и его наследниками или сборкой.Можно также использовать объединение этих ограничений, которое позволит обращаться к переменной из кода любого производного класса или любого другого места в этой же сборке.Создать это объединение можно с помощью комбинации ключевых слов Protected и Friend в одном и том же объявлении.

Чтобы сделать переменную доступной только из своего класса и его наследников, выполните следующие действия:

  1. Поместите инструкцию Dim для переменной внутрь класса, но вне любой процедуры.

  2. Включите в оператор Dim ключевое слово Protected (Visual Basic).

    Теперь можно считать или записывать значение переменной из любого места внутри класса, а также внутри любого его наследника, но не из классов, находящихся вне иерархии наследования.

Чтобы сделать переменную доступной только из ее сборки, выполните следующие действия:

  1. Поместите инструкцию Dim для переменной внутрь модуля, класса или структуры, но вне любой процедуры.

  2. Включите в оператор Dim ключевое слово Friend (Visual Basic).

    Теперь можно считать или записывать значение переменной из любого места внутри модуля, класса или структуры, а также внутри любого кода в той же сборке, но не извне сборки.

Пример

В следующем примере показано объявление переменных с уровнями доступа Public, Protected, Friend, Protected Friend и Private.Обратите внимание — когда в инструкции Dim задается уровень доступа, использовать ключевое слово Dim необязательно.

Public Class classForEverybody
Protected Class classForMyHeirs
Friend stringForThisProject As String
Protected Friend stringForProjectAndHeirs As String
Private numberForMeOnly As Integer

Безопасность

Чем строже уровень доступа к переменным, тем меньше вероятность того, что вредоносный код может использовать их не по назначению.

См. также

Ссылки

Оператор Dim (Visual Basic)

Public (Visual Basic)

Protected (Visual Basic)

Friend (Visual Basic)

Private (Visual Basic)

Основные понятия

Уровни доступа в Visual Basic