21

使用嵌套类对常量进行分组有什么问题?

像这样:

public static class Constants
{
    public static class CategoryA
    {
        public const string ValueX = "CatA_X";
        public const string ValueY = "CatA_Y";
    }
    public static class CategoryB
    {
        public const string ValueX = "CatB_X";
        public const string ValueY = "CatB_Y";
    }
}

像这样使用:

Console.WriteLine(Constants.CategoryA.ValueY);
Console.WriteLine(Constants.CategoryB.ValueX);

您还可以使“常量”类部分...

4

3 回答 3

22

有一些针对公共嵌套类的指南(针对 fx 4.5 更新):

√ 当嵌套类型与其外部类型之间的关系需要成员可访问性语义时,请使用嵌套类型。

X 避免公开暴露的嵌套类型。唯一的例外是嵌套类型的变量只需要在极少数情况下声明,例如子类化或其他高级定制场景。

X 如果类型可能在包含类型之外被引用,则不要使用嵌套类型。

我认为你的例子符合第一点(即:你很好)。

于 2010-05-31T19:49:25.980 回答
3

谁说错了?常量可以(并且被)定义在类层次结构中的任何位置。

于 2010-05-31T19:23:24.453 回答
2

不是说你做错了,而是像这样使用命名空间怎么样:

namespace Constants
{
    public static class CategoryA
    {
        public const string ValueX = "CatA_X";
        public const string ValueY = "CatA_Y";
    }
    public static class CategoryB
    {
        public const string ValueX = "CatB_X";
        public const string ValueY = "CatB_Y";
    }
}
于 2010-05-31T20:19:01.627 回答