【发布时间】:2011-11-17 10:21:24
【问题描述】:
我经常想知道正确的方法:
例如,在我的程序中,我有大约 100 个常量(或枚举)用于某些计算。它们最好存放在一个地方。它们可以按层次分组,例如:
System3 / Rules / Rule7 / ParameterXY / MaxAverageValue
当然,我希望在编码时可以访问这些值,因此将它们存储在某种资源中并不是一个真正的选择。
据我所知,这可以通过以下方式完成:
- 很长的常量名
- 嵌套类
- 命名空间
使用名称非常难看,而且维护起来也不是很好。我发现嵌套类是一种很好的方法,但是一些 stylecop/fxcop 规则禁止这样做,所以这在某种程度上一定是“坏的”。最后,我找到了建议的替代方案,使用名称空间,也不是很好。恕我直言,它会创建大量文件夹和文件,每个文件夹和文件几乎什么都不包含。而且我不喜欢在程序集反射器中弹出 50 个子命名空间。
那么..你是怎么做这种任务的?你有什么建议?
【问题讨论】:
-
我建议命名空间。避免嵌套类和长常量名称。很难阅读
-
MVC 使用带有静态常量公共字段 IIRC 的生成类类
-
@StevenMuhr:你为什么说嵌套类很难阅读是出于兴趣?在我的脑海中,他们把我当作我想要的解决方案。意味着您可以将所有常量保存在一个文件中,并获得与命名空间相同的层次结构。
-
@Chris:在您的情况下,您将拥有一个包含许多嵌套类的庞大类。使用具有相同命名空间的单独独立类更具可读性和更易于维护。
-
@Chris: 欢迎回家 Chris :)
标签: c# .net namespaces constants