Доступ к настройкам программы по имени
Я пишу программу на C#. Программа управляет колесом физического фильтра, которое имеет сменные колеса от A до H. Каждое колесо может содержать 8 фильтров. Я хочу, чтобы пользователь мог хранить дружественные имена для каждого фильтра в каждом колесе (всего 64). Устройство и программа способны идентифицировать идентификатор колеса (AH) и положение фильтра (1-8), так что это лучший способ сохранить эти 64 имени и иметь возможность ссылаться на них по идентификатору и поз. Я мог бы создать пользовательскую настройку для каждого, но есть две проблемы с этим: 1) имена не будут одинаковыми для каждого пользователя, который входит в систему (я думаю), и 2) для программного доступа к определенным именам Я должен использовать ОГРОМНОЕ утверждение случая. Или есть способ получить доступ к настройкам по имени? как это..?
char WheelID = 'A';
int FilterPos = 4;
NewName = "FriendlyName";
string SettingIWant = WheelID.ToString() + FilterPos.ToString();
Properties.Settings[SettingIWant].Text = NewName;
4 ответа
Хорошо, я просто тупой и упустил этот способ доступа к настройкам...
string SettingToChange = WheelID.ToString() + Position.ToString();
Settings1.Default[SettingToChange] = NewName;
Settings1.Default.Save();
Работает просто отлично. Единственная проблема заключается в том, что сохраненные значения не будут одинаковыми для каждого пользователя, но им просто придется иметь дело с этим!
Ну, вы могли бы принять подход базы данных.
Решение "в памяти" - это словари.
char WheelID = 'A';
int FilterPos = 4;
NewName = "FriendlyName";
string SettingIWant = WheelID.ToString() + FilterPos.ToString();
Dictionary<string, string> properties = new Dictionary<string, string>()
properties.Add(SettingIWant, NewName);
Ant, тогда вы можете получить доступ к данным, используя синтаксис скобки
properties[SettingIWant]
ХОРОШО. Я только что провел минимальное исследование, и вот что, я думаю, вы хотите сделать.
Во-первых, реализовать Dicitonary вещь Родриго Гарсиа, кроме использования System.Collections.Specialized.StringDictionary
, Это один из типов, который можно добавить в файл настроек.
При настройке параметров приложения в разделе "Тип" выберите "Обзор...", если его нет в списке.
И убедитесь, что вы всегда записываете изменения, если коллекция меняется!