C# 何时在C中使用Properties.Settings.Default#

C# 何时在C中使用Properties.Settings.Default#,c#,.net,properties,configuration,settings,C#,.net,Properties,Configuration,Settings,在C#中使用Properties.Settings.Default配置设置的最佳实践是什么?我经常看到它,但我常常不知道什么时候应该使用它,而不是什么时候应该硬编码值。谢谢 基本上,我尽量避免在代码中硬编码值,主要是因为如果需要更改它们的值,则需要重新编译应用程序 使用某种公共对象,通过公共属性公开您的所有设置,以便在整个应用程序中以相同的方式引用设置,这通常是有益的 例如: public static SomeReferenceClass { public static string

在C#中使用Properties.Settings.Default配置设置的最佳实践是什么?我经常看到它,但我常常不知道什么时候应该使用它,而不是什么时候应该硬编码值。谢谢

基本上,我尽量避免在代码中硬编码值,主要是因为如果需要更改它们的值,则需要重新编译应用程序

使用某种公共对象,通过公共属性公开您的所有设置,以便在整个应用程序中以相同的方式引用设置,这通常是有益的

例如:

public static SomeReferenceClass
{
     public static string TimeOfDay { get{ return Properties.Settings.Default.TimeOfDay; }}
}
然后以后再叫它

SomeReferenceClass.TimeOfDay;

我的经验法则一直是,如果属性的值需要在不修改代码的情况下更改,则将它们设置为外部/可配置属性。如果您永远不需要更改它们的值,那么它们是一个常量,可以硬编码


基本上,如果需要配置/更改这些值,请将它们放入
Properties.Settings.Default
。您可以硬编码常量。

就我个人而言,当未指定或保留用户或应用程序设置时,我使用默认设置

我从来没有硬编码过一个设置,它可能会根据环境、用户、应用程序等任意数量的变量进行更改


我通常创建实现接口的设置提供程序。这样,,您可以轻松更改收集配置设置的方式,而无需更改业务逻辑。

MSDN-这种类型的属性适用于最终用户可能更改的内容。我主要关心的是在代码中有大量的文本行,例如
properties.settings.Default.TimeOfDay
,而我只需要一个名为
timeOfDay
@grantmc不确定这是否还有帮助,但在我的答案中增加了一点。这样做还意味着,如果配置文件中的属性名称发生更改,则只需在代码中更新一次,因为其他所有内容都会引用该属性。