Есть ли способ инициализировать значение по адресу памяти, отличному от определенного значения? У меня есть форма winform, которая открывается при запуске, и я хотел бы сохранить предыдущие записи пользователя. Моя (дерьмовая) идея - встроить текстовый файл и прочитать значение из этого файла в соответствующие переменные? Есть ли более профессиональный / чистый способ делать то, что я хочу?

Для ясности скажем, что у меня есть переменная: string pet = "dog". Позже в программе пользователь изменит это значение на "fish". Теперь я хочу где-нибудь сохранить это значение и сохранить его в случае отключения питания, чтобы при перезапуске программы переменная pet была инициализирована сохраненным значением памяти, "fish".

0
BrynnyBob 25 Ноя 2016 в 18:56

3 ответа

Лучший ответ

Хороший способ добиться желаемого - использовать "Настройки".

После настройки вы можете установить их на уровне пользователя или приложения в своем коде следующим образом:

Properties.Settings.Default.Pet = "dog";
Properties.Settings.Default.Save();

https://msdn.microsoft.com/en-us/library/aa730869(v=vs.80).aspx

1
paul 25 Ноя 2016 в 16:11

Сериализация объектов - это то, что вам нужно. Дополнительную информацию см. здесь.

Есть несколько способов сделать это в зависимости от ваших потребностей. Одним из решений является запись / чтение из текстового файла.

2
Mat 25 Ноя 2016 в 16:00

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

Все, что вы хотели знать о реестре с C #

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

0
JuanR 25 Ноя 2016 в 16:03