在所有应用程序中,始终使用一些常量值.
我不喜欢在我的应用程序中对每个代码中的这些值进行硬编码,因为它会显着降低可维护性.
我有2个选择:
>在目标类中创建一个内部Constants类,并添加公共const值,例如
内部静态类常量
{
public const string IdAttribute =“id”;
}
要么
>创建一个资源文件(.resx)并在那里存储我的常量值和公式.
我在我的应用程序中使用了第二种方法.使用资源文件时遇到的一个问题是我无法使用.NET 4.0可选参数功能.
例如以下不起作用:
public void DoSomething(string id = Resources.Constants.Id)
{
// ..
}
错误是在运行时未确定Id的值.
基本上,您会使用哪种方式来推荐管理每个类的常量?为什么?
我目前的方法是,如果我有一些应该只在一个类中使用的常量,我在该类中创建一个静态的Constants类.如果要在多个类或项目中使用我的常量,我会将它们放在资源文件中,例如PageUrls.resx.
谢谢,
解决方法:
就个人而言,我宁愿在逻辑上属于类的类中定义常量,与(比如)DateTime.MinValue类似.
然后,一般来说,公开这些常量是一种“代码味道”,这意味着某种耦合应该以更好的方式表达.当代码允许时,将它们设为私有(或内部)显然没有任何害处.
但是,有时总体而言属于全局常量.这些通常是配置,应该这样对待.