2010-09-13 8 views
0

Это может показаться глупой темой, но я пытаюсь изучить некоторые хорошие методы кодирования.Глобальные переменные в Windows.Forms

Я создаю приложение windows.forms, и я достиг точки, в которой мой частичный класс Form имеет 7 глобальных переменных (и их соответствующих свойств), объявленных и используемых, - чтобы назвать несколько: один, чтобы определить, является ли приложение зарегистрированный, объект настроек, который мне нужен для доступа во многих событиях, объект Logger и т. д.

Это плохое кодирование? Я имею в виду, можно ли объявить кучу глобальных переменных и использовать их в различных обработчиках/методах событий, или есть какая-то лучшая практика, и я должен пересмотреть мой код, чтобы избежать их?

У меня осталось много работы в этом приложении, так что теперь он находится на первом этапе, и с моим стилем кодирования похоже, что он будет иметь еще более 20 глобальных переменных.

+0

Зависит от вашего сценария. Приведите пример, чего вы пытаетесь достичь, и люди смогут помочь. – Aliostad

+0

Спасибо за ваш комментарий, я пытаюсь создать браузер на основе geckofx. Всякий раз, когда у меня есть объект (например, экземпляр моего класса «Параметры»), который должен быть доступен в нескольких обработчиках событий, я объявляю его в верхней части класса Form, и я был обеспокоен тем, что у меня будет десяток таких объектов. –

ответ

1

Возможно, вы захотите добавить файл App.config и использовать его для своих глобальных настроек (например, установка журнала и т. Д.). Преимущество такого подхода заключается в том, что вы можете изменить эти параметры и перезапустить приложение, не внося изменений в код.

Вы можете добавить пары ключ/значение в вашем App.config:

<appSettings> 
    <add key="YourKey" value="YourValue"/> 
</appSettings> 

и доступ к ним в коде:

string yourValue = ConfigurationManager.AppSettings["YourKey"]; 

Performing надлежащего синтаксический (например Int32.TryParse (..)) вы можете хранить данные, кроме строк.

+0

Спасибо, что избавит меня от некоторых переменных readonly int. –

Смежные вопросы