В чем разница между Dim, Global, Public и Private как модульными модификаторами доступа к полю? - PullRequest
64 голосов
/ 28 сентября 2010

В VB6 / VBA вы можете объявлять переменные уровня модуля вне определенного метода Sub или Function.Я использовал Private и Public ранее внутри модулей и понимаю их так:

  • Public - видимый для всего кода внутри модуля и всего кода вне модуля, по сути, делая егоglobal.
  • Private - видимый только для кода внутри модуля.

Я заметил, что вы можете использовать Dim и Global в качестве модификаторов для модульных переменных.Отличаются ли Dim и Global от Private и Public соответственно при использовании в качестве модификаторов доступа в модульных полях?Если да, то чем они отличаются?

1 Ответ

88 голосов
/ 28 сентября 2010

Dim и Private работают одинаково, хотя общепринятым условием является использование Private на уровне модуля и Dim на уровне вспомогательных функций.Public и Global почти идентичны по своим функциям, однако Global можно использовать только в стандартных модулях, тогда как Public можно использовать во всех контекстах (модулях, классах, элементах управления, формах и т. Д.) GlobalПроисходит из более старых версий VB и, вероятно, был сохранен для обратной совместимости, но был полностью заменен Public.

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