使用命名空间的一些非标准方法是什么?

时间:2008-09-25 05:54:02

标签: c# c++ namespaces

我对使用命名空间的前所未有,酷炫和深奥的方式感兴趣。我知道许多高级开发人员“破解”命名空间,例如,使用它们作为字符串常量的引用。在字符串常量示例中,想法是实现DRY(DRY =不要重复自己),并且可以将所有字符串保存在一个文件中。

注意:我正在寻找与“常见”语言相关的答案,如C#,Ruby,Java等。

1 个答案:

答案 0 :(得分:1)

我经常使用的一个深奥用法是在C ++中定义枚举时,尤其是当cetain上下文中有多个类型时。这样可以在相关上下文中使用Quality::k_highImportance::k_high。枚举也经常使用未知值(通常表示没有设置的情况),这些值需要有资格消除常量歧义(例如k_qualityNonek_importanceNone),这可以避免使用名称空间。

因此定义如下:

namespace Quality {
   enum Type { k_high, k_medium, k_low, k_none };
}

namespace Importance {
   enum Type { k_high, k_medium, k_low, k_none };
}

然后函数和方法将采用Quality::Type(和Importance::Type)类型的参数,这是一个相当描述性和好的参数。单个枚举常量也与前面提到的类似(Quality::k_low)。