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

55

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

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

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

Теги:
scope
vb6
access-modifiers

1 ответ

76
Лучший ответ

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

  • 0
    Спасибо за Ваш ответ. Ваше объяснение в значительной степени то, о чем я думал. Я начинаю с огромного блока унаследованного кода, в котором все четыре модификатора используются в разделах объявлений одного модуля.
  • 3
    Глобальные переменные сохраняют свои значения после выполнения.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню