C# 一个拥有40个常量的类应该声明为静态还是非静态?
有一个类只包含约40个常量,这个类可以声明为“静态”和“非静态”,因为它对我们访问这些常量的方式没有任何影响 我的问题是选择哪一个,为什么?这里的最佳实践是什么C# 一个拥有40个常量的类应该声明为静态还是非静态?,c#,C#,有一个类只包含约40个常量,这个类可以声明为“静态”和“非静态”,因为它对我们访问这些常量的方式没有任何影响 我的问题是选择哪一个,为什么?这里的最佳实践是什么 public static class IdConstants { public const string a1= "a1" // 40 more constants } public class IdConstants { public const string a1= "a1" // 40 mo
public static class IdConstants
{
public const string a1= "a1"
// 40 more constants
}
public class IdConstants
{
public const string a1= "a1"
// 40 more constants
}
该类应该是
静态的
,不是因为它声明了常量,而是因为它仅声明了常量,所以它永远不会被实例化
如果类具有非静态成员或将被继承,则它不应是静态的
作为旁白,一类形式
public static class IdConstants
{
public const string a1 = "a1";
public const string a2 = "a2";
// ...
public const string a41 = "a41";
}
表示设计有问题,但我怀疑您只是想用一个简单的示例来说明您的问题。如果您不打算实例化该类,请将其设置为静态。
const
对象始终是静态的,如果在实例级别上没有其他有意义的属性/方法,我会选择静态类。如果出现第41位或第42位,这类数字一点也不奇怪,你真的想重新编译以支持这一点吗?另一方面,可能是一个或多个枚举比独立常量更合适。@Damien_不相信我的人,我只是想了解枚举如何比40个独立常量更好。这些常量不相关,但类型相同。谈到重新编译,我在MSDN上看到了一些让我更加困惑的东西:与任何常量一样,对枚举的各个值的所有引用都在编译时转换为数字文本。这可能会产生常量中所述的潜在版本控制问题。
如果这些常量“不相关”,为什么要将它们全部放在一个类中?不要仅仅因为它们属于同一“类型”(即常数),就将它们放在同一个容器中