如何避免硬编码字符串

Amc*_*tty 6 .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";
    }
    
    Run Code Online (Sandbox Code Playgroud)

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

此外,如果你已经养成了这种情况的其他习惯,请随时发布.

Joe*_*oey 5

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

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