Когда вы делаете new classname()
, вы создаете объект с членами этого класса, инициализированными в памяти их значениями по умолчанию. например если ваш класс SettingsHolder
содержит int _n;
, он будет инициализирован равным 0. В качестве альтернативы вы можете, конечно, инициализировать переменную-член конкретным значением, например, int _n = 5;
Насколько я помню, это в определении языка, которое поэтому исключает то, что вы предлагаете; что по сути является чем-то вроде «самоизменяющегося кода с состоянием».
Следовательно, do необходимо использовать механизмы для хранения состояния в ваших программах - например, Properties.Settings (который по умолчанию сохраняет файлы конфигурации XML) или DB, например.
Вам не нужно анализировать класс Properties.Settings. Если вы заходите в «Настройки» из меню свойств проекта и добавляете «Пользователь» или «Приложение». Затем к нему можно получить доступ с помощью Properties.Settings.Default.SettingName
. Если я правильно помню, вам нужно поручить коду сохранить изменения в свойствах.