Объявите глобальные переменные в Visual Studio 2010 и VB.NET - PullRequest
37 голосов
/ 25 декабря 2010

Как объявить глобальную переменную в Visual Basic?

Эти переменные должны быть доступны из всех форм Visual Basic.Я знаю, как объявить открытую переменную для конкретной формы, но как мне сделать это для всех форм в моем проекте?

Ответы [ 13 ]

0 голосов
/ 25 января 2014

Первый парень из публичного класса имеет гораздо больше смысла.У оригинального парня есть несколько форм, и если нужны глобальные переменные, тогда глобальный класс будет лучше.Подумайте о ком-то, кто занимается кодированием, и ему нужно использовать глобальную переменную в классе, у которого есть intellisense, это также значительно облегчит кодирование модификации через 6 месяцев.

Также, если у меня будет пердеть мозг и использоватьв примере частей на уровне модуля, затем хочу мои глобальные части, я могу сделать что-то вроде

Dim Parts as Integer
parts = 3
GlobalVariables.parts += Parts  '< Not recommended but it works

По крайней мере, поэтому я бы пошел по пути класса.

0 голосов
/ 11 мая 2013

Кажется, что ни один из этих ответов ничего не меняет для меня.

Я конвертирую старую программу Excel в VB 2008. Конечно, есть много вещей, которые нужно изменить в Excel, но то, что вызывает головную боль, похоже, является всей этой «публичной» проблемой.

У меня около 40 массивов, на которые ссылаются около 20 модулей. Массивы составляют основу всего проекта и решаются практически каждой процедурой.

В Excel мне просто нужно было объявить их все как Public. Работал отлично. Нет проблем. Но в VB2008 я нахожу это довольно проблематичным. Абсурдно думать, что мне нужно пройти тысячи строк кода, чтобы просто указать каждой ссылке, где была объявлена ​​публика. Но даже желая сделать это, ни одна из предлагаемых схем, кажется, не помогает вообще.

Похоже, что "Public" просто означает "Public в этом одном модуле". Добавление «Shared», похоже, ничего не меняет. Добавление имени модуля или чего-либо еще, кажется, не меняет этого. Каждый модуль настаивает на том, чтобы я объявлял все массивы (и около 100 других фундаментальных переменных) в каждом модуле (казалось бы, задом наперед). И бит "Imports", кажется, тоже не знает, о чем я говорю, "not found".

Я должен сочувствовать спрашивающему. Со всем этим что-то кажется ужасным.

0 голосов
/ 15 августа 2012
Public Class Form1

   Public Shared SomeValue As Integer = 5

End Class

Ответ:

MessageBox.Show("this is the number"&GlobalVariables.SomeValue)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...