如何避免硬编码字符串

时间:2011-07-16 22:36:04

标签: .net coding-style hard-coding

这是关于最佳编码实践的问题。 我想知道如何最好地避免在.NET应用程序中硬编码字符串和值的共识。 到目前为止我在以前工作过的地方看到了什么:

  • 使用资源.resx文件
  • 在App.config或web.config
  • 中存储这些值和字符串
  • 创建一个静态类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";
    }
    

然而,不是第三种方法,只是另一种硬编码?有这样一堂课有意义吗?好处是所有字符串都在一个地方,但是真的避免使用硬编码吗?

另外,如果你已经养成了其他习惯,请随时发帖。

4 个答案:

答案 0 :(得分:5)

主要的好处是确保所有字符串都放在一个地方,你只需要在那里更改它来更新整个程序。如果程序的不同部分使用相同的字符串并且一个实例得到更新,而另一个实例没有更新,那么您就遇到了问题。顺便说一句,这适用于所有文字。

然后使用资源文件有i18n和l10n的好处。如果你需要它,但许多大型应用程序应该。

答案 1 :(得分:1)

总的来说,我认为将所有可配置数据存储在中央配置文件中是一种很好的做法,因此所有数据都在一个地方,并且可以由其他应用程序共享

答案 2 :(得分:1)

在我看来,只有当你的设置是(i)真正的常量和(ii)当然真正公开时,ApplicationSettings才有用。如果其中任何一种情况不正确,那么这不是理想的,您可以选择回.config文件.resx

答案 3 :(得分:0)

好吧,我认为ApplicationStrings是一个很好的解决方案