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


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

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

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

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

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

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

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

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

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

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

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

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

  2. Включите общедоступный ключевое слово в инструкциюDim.

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

–или–

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

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

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

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

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

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

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

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

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

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

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

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

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

Пример

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

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

См. также