Подтвердить что ты не робот

В чем разница между Dim, Global, Public и Private в качестве модификаторов модульного поля?

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

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

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

4b9b3361

Ответ 1

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