6

这是一个关于最佳编码实践的问题。我想知道关于如何最好地避免在 .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

4 回答 4

5

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

然后有了资源文件,就有 i18n 和 l10n 的好处。如果您需要它,但许多大型应用程序都应该这样做。

于 2011-07-16T22:38:50.550 回答
1

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

于 2011-07-16T22:40:21.160 回答
1

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

于 2011-07-16T22:46:01.840 回答
0

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

于 2011-07-16T22:39:20.987 回答