Это определенно немного нубский вопрос, но мои поиски так далеко, не решили эту проблему для меня.
Я хочу, чтобы конкретное консольное приложение сохраняло несколько переменных уровня класса. В одном случае я хочу сохранить копию моего объекта регистрации, который я буду использовать в разных местах в классе. В другом случае я хочу сохранить простой тип, фактически значение int, которое будет использоваться только для внутреннего использования (не обязательно должно быть свойством).
Похоже, что если я не укажу эти переменные как статические, я не смогу использовать их в Main () и за его пределами.
Мое понимание статических объектов заключается в том, что их значения являются общими для всех экземпляров объекта. При нормальной работе я ожидаю, что они будут только одним экземпляром моего приложения, поэтому эта проблема не является проблемой, но она высветила недостаток понимания с моей стороны чего-то, что является довольно фундаментальным.
В случае с моим объектом журналирования я мог видеть случай для того, чтобы сделать его статичным - может быть полезным совместное использование журнала несколькими экземплярами. Тем не менее, это может быть не так ... В случае с моим int, я бы никогда не хотел, чтобы это делилось между экземплярами.
Итак ...
- Я неправильно понимаю теорию, стоящую за этим?
- Есть ли другой способ объявить и использовать переменные уровня класса?
- Должен ли я избегать их использования? Я мог бы просто передавать значения в качестве параметров от функции к функции, хотя для работы это, кажется, мало что дает без видимой выгоды.
РЕДАКТИРОВАТЬ: ОК, сообщение ясно - мое понимание статики было в основном правильно, но проблема была в структуре и подходе. Спасибо за ваши ответы.