2013-12-18 3 views
2

Недавно я работаю на сервере, который передает команды и данные, а также в моих глобальных переменных, у меня есть 100 констант, которые я использую в своей программе для протоколов связи. Есть ли способ сделать класс глобальных переменных, а затем получить доступ к этому классу, когда это необходимо?Класс глобальных переменных

+1

Вы можете делать перечисления, если значения не должны меняться во время выполнения. – OmniOwl

+1

да, вы можете сделать класс статическим, тогда вы можете получить доступ к этому классу (если он находится в том же пространстве имен). –

+0

Я отредактировал ваш заголовок. Пожалуйста, смотрите: «Если вопросы включают« теги »в их названиях?] (Http://meta.stackexchange.com/questions/19190/), где консенсус« нет, они не должны ». –

ответ

5

Одним из способов было бы создать класс и пометить его как static:

public static class GlobalVariables 
{ 
    public static int GlobalInt; 
    public static float GlobalFloat; 
} 

Вы сможете получить к ним доступ в любом месте в вашей программе.

Если вы не хотите, чтобы кто-нибудь сможет изменить эти значения, вы можете пометить их с const ключевым словом:

public const int GlobalInt = 15; 
1

Создать статический класс и пометить ваши поля с const ключевого слова, это неявно static и вы не сможете перезаписать их случайно.

1

В дополнение к предложениям выше, есть ли вероятность, что эти «константы» могут измениться в будущем? Причина, по которой я спрашиваю, это то, что вы упомянули, что это протоколы связи. Если его вещи, такие как адреса, порты или что-либо еще, что может измениться, рассмотрите использование статического класса и в этом классе используйте статический конструктор для чтения значений из конфигурации или статических свойств этого класса, просто относящихся к конфигурации. Вы не хотите, чтобы изменение брандмауэра вынуждало вас перекомпилировать ваш код.

Если значение не имеет шансов на изменение, оно должно быть const.

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