Как объявить глобальную переменную в 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 глобальные переменные, вы можете назвать их, как мы привыкли с венгерским именем стиля нотации. Этот метод очень прост и элегантен. Старое новое и новое старое.