Дим против частного / публичного - PullRequest
5 голосов
/ 21 октября 2011

Во главе модуля я хочу объявить некоторые глобальные переменные для использования в различных подпрограммах / функциях.

В чем разница между

Dim x as string и Private x as string /Public x as string, а когда бы я использовал один поверх другого?

Ответы [ 2 ]

11 голосов
/ 22 октября 2011

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

Private разрешит только членам соответствующего модуля / класса / что угодно для доступа к экземпляру

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

Dim по умолчанию общедоступный или закрытый, в зависимости от того, в чем вы работаете. Например, класс по умолчанию будет закрытым. Я предлагаю почитать об инкапсуляции и ООП, чтобы лучше это почувствовать.

1 голос
/ 20 февраля 2017

Они разные, но взаимосвязанные вещи.

Dim Statement (Visual Basic) [MSDN] говорит нам:

[Dim] Объявляет ивыделяет место для хранения одной или нескольких переменных.

и

Ключевое слово Dim является необязательным и обычно не указывается, если указывается любой из следующих модификаторов: Public, Protected, FriendЗащищенный друг, Личный, Общий, Тени, Статические, Только для чтения или С событиями.

Уровни доступа в Visual Basic [MSDN] сообщает нам:

Приватный (и Общедоступный, Защищенный, Друг, Защищенный друг) - это модификаторы доступа, которые определяют, «какой код имеет разрешение на чтение или запись в него».

и

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

, поэтому Private x As String эквивалентно Dim Private x As String (хотя при вводе этого Visual Studio удалит Dim)

и Dim x As String эквивалентно Private x As String, за исключениемв структурах (где это эквивалентно Public x As String) и интерфейсах, где объявление переменных не разрешено - см. Контексты декларации и уровни доступа по умолчанию (Visual Basic) [MSDN]

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