这是关于最佳编码实践的问题。 我想知道如何最好地避免在.NET应用程序中硬编码字符串和值的共识。 到目前为止我在以前工作过的地方看到了什么:
创建一个静态类ApplicationStrings并声明其中的所有字符串和值:
public static class ApplicationStrings
{
#region constants
public const string APPLICATION_NAME = "X";
public const string APPLICATION_RESOURCEMANAGER_NAME = "ResourceManagerX";
public const string APPLICATION_DEFAULT_LOGFILENAME = "log.txt";
}
然而,不是第三种方法,只是另一种硬编码?有这样一堂课有意义吗?好处是所有字符串都在一个地方,但是真的避免使用硬编码吗?
另外,如果你已经养成了其他习惯,请随时发帖。
答案 0 :(得分:5)
主要的好处是确保所有字符串都放在一个地方,你只需要在那里更改它来更新整个程序。如果程序的不同部分使用相同的字符串并且一个实例得到更新,而另一个实例没有更新,那么您就遇到了问题。顺便说一句,这适用于所有文字。
然后使用资源文件有i18n和l10n的好处。如果你需要它,但许多大型应用程序应该。
答案 1 :(得分:1)
总的来说,我认为将所有可配置数据存储在中央配置文件中是一种很好的做法,因此所有数据都在一个地方,并且可以由其他应用程序共享
答案 2 :(得分:1)
在我看来,只有当你的设置是(i)真正的常量和(ii)当然真正公开时,ApplicationSettings才有用。如果其中任何一种情况不正确,那么这不是理想的,您可以选择回.config文件.resx
答案 3 :(得分:0)
好吧,我认为ApplicationStrings是一个很好的解决方案