假设我的程序设置文件中有一些值
ClassLibrary.Properties.Settings.Default.SettingName1
ClassLibrary.Properties.Settings.Default.SettingName2
ClassLibrary.Properties.Settings.Default.SettingName3
我有一个方法,我想根据一些传入的整数值获取设置值。有没有一种方法可以连接传入的整数和名称来进行分配?我知道我可以创建一个连接字符串,但是有没有办法使用生成的字符串从指定的设置中获取value?
也就是说,只是因为我能做到这一点string combinedPath = "ClassLibrary.Properties.Settings.Default.SettingName" + (string)intValue;
合并后的结果只是一个字符串,所以我不能这样做:
var mySettingsValue = combinedPath;
有没有办法使用该连接字符串来引用它指向的对象?
如果需要将字符串映射到对象,可以使用 Dictionary
Dictionary<string, object> dict = new Dictionary<string, object>();
dict["ClassLibrary.Properties.Settings.Default.SettingName1"] = new MyObject();
string combinedPath = "ClassLibrary.Properties.Settings.Default.SettingName" + (string)intValue;
if (dict.ContainsKey(combinedPath))
{
MyObject obj = dict[key] as MyObject;
// Now you can use obj
}
(在 C# 中,不能直接使用连接字符串来引用对象。这是因为 C# 是静态类型语言,变量名称在编译时解析,而不是在运行时解析。)