我正在编写应用程序,需要在应用程序运行时存储程序设置(输入目录,输出目录等)。我希望程序能够加载和使用(基于选项)生产环境和测试环境。
我会像这样设置结构:
Class AppSettings
{
struct prodAppSettings
{
var settingName;
var settingName2;
var settingName3;
}
struct testAppSettings
{
var settingName;
var settingName2;
var settingName3;
}
}
然后,在我的主课程中,根据用户想要的环境选项加载适当的设置。
AppSettings类将处理设置的加载(应用程序将与Web服务连接以进行设置,或者在网络连接不可用时,可以使用存储上次已知良好设置的XML文件)。我不太熟悉结构,我想熟悉它们,所以这个项目可能是一个很好的地方。
修改的
澄清了一些事情。
答案 0 :(得分:10)
不,基本上。使用class
。您需要使用struct
的次数 消失 小(除非您正在为XNA等编写) - 这不是其中之一。如果你在这里使用struct
,你可能会遇到至少两个问题:
struct
(而不仅仅是参考)struct
很可能是第三种(撕裂的值,通过多线程代码)
答案 1 :(得分:6)
你已经上课了:
class AppSettings
为什么不使用它呢?您可以使用嵌套类在内部进一步构建事物:
class AppSettings
{
public SettingsGroup SomeGroupOfSettings { get; set; }
// other settings
public class SettingsGroup
{
// properties which are logically grouped together
}
}
对我来说,在这里应用(或者至少可以)更多的逻辑,使得课程越来越合适,这似乎是合理的。
结构往往适用于不可变数据的小分组。例如,通用结构将是两个坐标以形成点。如果任一坐标发生变化,那么这是一个全新的观点,也可以为它创建一个新的结构实例。像这样的更大和可能更复杂的东西真的属于一个类,它代表更多的“对象”,而不是“不可变数据点的分组。”
答案 2 :(得分:0)
在这种情况下,管理设置的经典方法是内置Settings class