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


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

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

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

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

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

Частный и общедоступный доступ

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

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

  2. Включите ключевое слово Private в инструкцию Dim .

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

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

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

  2. Включите ключевое слово Public в инструкцию Dim .

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

-или-

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

  2. Не включайте ключевое Public слово в выражение Dim.

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

Защищенный и дружественный доступ

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

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

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

  2. Включите ключевое слово Protected в инструкцию Dim .

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

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

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

  2. Включите ключевое слово "Друг" в инструкцию Dim .

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

Пример

В следующем примере показаны объявления переменных с уровнями доступа 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  

Безопасность .NET Framework

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

См. также