使用嵌套类对常量进行分组有什么问题?
像这样:
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);
您还可以使“常量” - 类部分...
答案 0 :(得分:19)
针对公共嵌套类有一些guideline(针对fx 4.5更新):
√当嵌套类型与其外部类型之间的关系需要成员可访问性语义时,请使用嵌套类型。
X AVOID公开暴露嵌套类型。唯一的例外是,嵌套类型的变量只需要在极少数情况下声明,例如子类化或其他高级自定义方案。
如果类型很可能在包含类型之外引用,则不要使用嵌套类型。
我认为你的例子符合第一点(即:你很好)。
答案 1 :(得分:4)
谁说这是错的?常量可以(并且)定义在类层次结构中的任何位置。
答案 2 :(得分: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";
}
}