繁体   English   中英

通过名称访问程序设置

[英]Accessing Program Settings by Name

我正在用C#编写程序。 该程序控制一个物理过滤轮,该过滤轮具有从A到H的可互换轮。每个轮可容纳8个过滤器。 我希望用户能够为每个轮子中的每个过滤器存储友好名称(总共64个)。 该设备和程序能够识别车轮ID(AH)和过滤器位置(1-8),因此最好的存储方式是存储这64个名称,并能够通过ID和POS进行引用。 我可以为每个用户创建一个用户设置,但是有两个问题:1)每个登录到计算机的用户的名称都不相同(我认为),以及2)为了以编程方式访问特定名称我必须使用巨大的案例陈述。 还是可以通过名称访问设置? 像这样..?

char WheelID = 'A';
int FilterPos = 4;
NewName = "FriendlyName";

string SettingIWant = WheelID.ToString() + FilterPos.ToString();

Properties.Settings[SettingIWant].Text = NewName;

好的,我只是笨蛋,却以这种方式忽略了设置...

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);

然后,您可以使用方括号语法访问数据

properties[SettingIWant]

当然可以。 只需覆盖[]运算符即可。

好。 我只是做了一些最少的研究,这就是我想您要做的。

首先,实现Rodrigo Garcia的Dicitonary事情,除了使用System.Collections.Specialized.StringDictionary之外。 这是可以添加到设置文件的类型之一。

设置应用程序设置时,如果在列表中没有看到,请在“类型”下选择“浏览...”。

如果集合发生更改,请确保始终将更改写出!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM