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