Как объявить глобальную переменную в Visual Basic?
Я хочу создать переменную, которая может использоваться в нескольких формах.
Это будет временное хранилище для целых чисел.
2 ответов
есть несколько способов сделать это в VB: специфичный для VB способ и не специфичный для VB способ (т. е. тот, который также может быть реализован в C#.
специфический для VB способ-создать модуль и поместить переменную в модуль:
Public Module GlobalVariables
Public MyGlobalString As String
End Module
не специфичный для VB способ-создать класс с общими свойствами:
Public Class GlobalVariables
Public Shared Property MyGlobalString As String
End Class
основное различие между двумя подходами заключается в том, как Вы доступ к глобальным переменным.
предполагая, что вы используете одно и то же пространство имен, специфичный для VB способ позволяет получить доступ к переменной без классификатора класса:
MyGlobalString = "Test"
для не-VB-специфичного способа необходимо префикс глобальной переменной с классом:
GlobalVariables.MyGlobalString = "Test"
хотя это более подробно, я настоятельно рекомендую не специфичный для VB способ, потому что, если вы когда-либо захотите перевести свой код или набор навыков на C#, специфичный для VB способ не переносится.
вы можете просто добавить его как общедоступный в любой модуль
пример:
Модуль Module1 'Глобальные переменные Public glbtxtTemplateName как строка " глобальная переменная для шаблона
VB загружает Модалы сначала как класс, и все общедоступные элементы в нем разделяются напрямую. Подумайте об этом так.
допустим, у нас есть модуль под названием "MY_PROCESSES"
когда вы объявляете SUB или функцию в "MY_PROCESSES", если вы хотите, чтобы это было используется вне "MY_PROCESSES" вы объявляете как публичный, как это
PUBLIC SUB LOAD_TEMPLATE() ....
чтобы добраться до LOAD_TEMPLATE, вы просто вызываете его в своем коде из любого места:
LOAD_TEMPLATE
поэтому, если мне нужно установить или использовать глобальную переменную, которую я опубликовал в своем модуле, я просто ссылаюсь на нее по имени:
glbtxtTemplateName= "TEMPLATE_NAME"
Если glbtxtTemplateName="", то LoadTemplate
Мне нравится построение класса, как указано выше, потому что вы можете ссылаться на него быстрее, не запоминая переменную, но если вам нужны только 1 или 2 глобальные переменные, вы можете назвать их, как мы привыкли с венгерским именем стиля нотации. Этот метод очень прост и элегантен. Старое новое и новое старое.