你会如何管理每个c#类的常量?

在所有应用程序中,始终使用一些常量值.

我不喜欢在我的应用程序中对每个代码中的这些值进行硬编码,因为它会显着降低可维护性.

我有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类似.

然后,一般来说,公开这些常量是一种“代码味道”,这意味着某种耦合应该以更好的方式表达.当代码允许时,将它们设为私有(或内部)显然没有任何害处.

但是,有时总体而言属于全局常量.这些通常是配置,应该这样对待.

上一篇:PHP未定义的常量错误没有意义


下一篇:Java Webstart报告错误的Bootloader选项