Это кажется основным, но я нахожу это довольно тривиальным. Просто, как Вы рекомендовали бы установить глобальную переменную со статическим классом (т.е. консольное приложение)?
Чтобы дать Вам немного больше фона, основной метод называет некоторый пользовательский eventhandlers, который я надеюсь получить / устанавливает переменные.
Ценятся любые идеи или предложения, которые Вы имеете.
Самый простой способ - это
public static Object MyGlobalVariable;
, который создает общедоступное статическое поле. Немного лучше:
public static Object MyGlobalVariable { get; set; }
Создает общедоступное статическое свойство.
В C# нет глобальных переменных. Переменная всегда локально скопирована. Фундаментальной единицей кода является класс, а внутри класса есть поля, методы и свойства.
Вы можете имитировать "глобальную переменную", создав публичное статическое поле или свойство в каком-либо классе, но вы не должны. C# делает это сложным по очень веской причине; глобальные переменные - это чистое зло. Они нарушают несколько хороших принципов проектирования ОО - инкапсуляцию, свободную связь и высокую сплоченность, и это лишь некоторые из них.
Я понимаю, что это вопрос новичка, но я думаю, что именно потому что это вопрос новичка, так важно говорить об этом. Сейчас самое время начать изучать, какие тактики активно не приветствуются или даже опасны в C#, и использование статического поля/свойства в качестве глобальной переменной - примерно шесть из них. Существуют законные применения этих конструкций, но передача данных из места в место не является одним из них.
Если два разных класса зависят от одной и той же информации, то передайте информацию от источника к месту назначения. Обычно это делается либо через конструктор, либо в качестве аргумента вызываемого метода. У вас всегда должен быть один и только один экземпляр, который действительно "владеет" этой информацией; сделать информацию "глобальной" означает, что вы не можете рассуждать о том, кто или что может зависеть от нее в любой момент времени.
Пожалуйста, подумайте об этом и попробуйте подумать о других способах передачи информации, которую вы хотите хранить в глобальной переменной (например, предоставляя ее в качестве аргумента конструктору или методу). Если вы не уверены, опубликуйте пример того, что вы пытаетесь сделать, и мы вам поможем.
Не уверен на 100%, но вы можете попробовать синглтон для хранения ваших переменных. Не зная, чего вы пытаетесь достичь, трудно рекомендовать, если это решение не укусит вас в будущем.