c #: (Статические) переменные уровня класса

Это определенно вопрос новичка, но мои поиски так далеко не помогли мне решить проблему.

Я хочу, чтобы конкретное консольное приложение хранило несколько классов -уровневые переменные. В одном случае я хочу сохранить копию объекта ведения журнала, который я буду использовать в различных местах класса. В другом случае я хочу сохранить простой тип, на самом деле значение int, которое будет использоваться только для внутренних целей (не обязательно должно быть свойством).

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

Насколько я понимаю, статические объекты являются общими для всех экземпляров объекта. При нормальной работе я бы ожидал, что это будет только один экземпляр моего приложения, так что эта проблема не является проблемой, но она высветила непонимание с моей стороны чего-то довольно фундаментального.

В случае с моим объектом ведения журнала, я мог видеть аргументы в пользу того, чтобы сделать его статическим - совместное использование журнала в нескольких экземплярах может быть преимуществом. Однако это может быть не так ... В случае с моим int, я бы ни за что не хотел, чтобы он разделялся между экземплярами.

Итак ...

  • Я неправильно понимаю теорию, лежащую в основе этого?
  • Есть ли другой способ объявления и использования переменных уровня класса?
  • Следует ли мне избегать их использования? Я мог бы просто передавать значения в качестве параметров от функции к функции, хотя это кажется немного трудоемким для работы без видимой выгоды.

РЕДАКТИРОВАТЬ: Хорошо, сообщение ясное - мое понимание статики было в основном правильным, но проблема была одна структуры и подхода. Спасибо за ответы.

5
задан CJM 1 October 2010 в 13:41
поделиться