在所有应用程序中,总会使用一些常量值。
我不喜欢在每个代码中对我的应用程序中的这些值进行硬编码,因为它会显着降低可维护性。
我有两个选择:
在目标类中创建一个内部Constants类,并添加公共const值,例如
内部静态类常量 { public const string IdAttribute =“id”; }
或
我在我的应用程序中使用了第二种方法。我使用资源文件时遇到的一个问题是我无法使用.NET 4.0可选参数功能。
e.g。以下不起作用:
public void DoSomething(string id = Resources.Constants.Id)
{
// ..
}
错误是Id的值未在运行时确定。
基本上,您会使用哪种方式并建议管理每个类的常量?为什么呢?
我目前的方法是,如果我有一些应该仅在一个类中使用的常量,我在该类中创建一个静态的Constants类。如果要在多个类或项目中使用我的常量,我会将它们放在资源文件中,例如PageUrls.resx。
谢谢,
答案 0 :(得分:3)
就我个人而言,我宁愿在逻辑上属于的类中定义常量,与(例如)DateTime.MinValue
类似。
然后,一般来说,公开这些常量是一种“代码气味”,暗示某些耦合应该以更好的方式表达。当代码允许时,将它们设为私有(或内部)显然没有任何害处。
然而,有时整体常量属于全局。这些通常是配置,应该这样对待。
答案 1 :(得分:0)
我个人主要将资源用于呈现给用户的常量。主要优点是可以将其本地化。
对于内部常量,我更喜欢static readonly
to const
个变量。当它们被许多类共享时,我会将它们放入常量类中,否则在需要它们的类中