Является ли хорошей практикой использование глобальных переменных в приложении VB (.NET) для обмена данными между формами?
В качестве глобальной переменной я имею в виду открытую переменную, определенную в модуле, а не открытый членили свойство класса.Более того, как мое личное правило, я никогда не обращаюсь к глобальной переменной из класса, но я передаю значения в класс через функции.
Я знаю, что я не являюсь другом глобальных переменных и их злоупотребления, но естьнекоторые случаи обмена данными в формах, где они кажутся единственным способом создания простого / понятного кода.
Пример 1: мое приложение запускается с аргументами командной строки.Мне нужно получить доступ к этим аргументам во всех моих формах: я просто читаю и проверяю аргументы в моем событии загрузки MDI, а затем сохраняю их в глобальных переменных.Таким образом, я могу очень просто прочитать эти значения из всех моих форм.
Пример 2: Я разрабатываю программу, которая записывает события приложения в протокол EventLog (например, Windows EventLog).Я написал класс EventLog, который обрабатывает добавление, отображение, сохранение, сортировку EventLog.Затем я поместил в модуль глобальную переменную gEventLog в качестве экземпляра класса EventLog и создал объект при загрузке формы MDI.Таким образом, у меня есть глобальная переменная, и я могу обрабатывать EventLog из каждой формы (MDI и дочерний элемент) в моей программе.С другой стороны, я мог бы создать EventLog как открытый член или свойство моей формы MDI, и это было бы то же самое.
Я нашел и прочитал уже некоторые обсуждения, но более приспособленные к программированию на C или к основным вопросам обсуждения, как в:
Являются ли глобальные переменные плохими?
http://c2.com/cgi/wiki?GlobalVariablesAreBad
и на VB это:
Объявите глобальные переменные в Visual Studio 2010 и VB.NET
Есть какие-либо предложения по поводу конкретного случая обмена данными между формами (а не между классами и другими компонентами программы)?Спасибо.