我有一个名为“ Core ”的命名空间,它是我项目的主要命名空间。
然后我创建了名为“接口”的新子命名空间,它将包含库的所有GUI和WPF类。有许多UserControl
和Window
的ETC。
同时我有另一个名为“接口”的类,它是一个STATIC类,用于处理和管理Interface命名空间及其功能。这是为了避免用户\开发人员管理他的软件的GUI,这就是我创建这个静态类的原因。
所以现在我有一个小问题,当调用静态类Core.Interface时,编译器不会在子命名空间和静态类之间分开,因为它们都具有完全相同的名称。
我不想更改他们的名字所以请不要建议任何新名字。 我只是不知道是否更好地在Interface命名空间内移动Interface类或者只是删除子命名空间“Interface”并将所有内容移动到主命名空间“Core”,但是那将是一团糟我想要一些严格的命令在我的项目中。
那么你建议我做什么?
更新: 好的,所以我对这些建议深信不疑。我将在每种情况下为子命名空间找到新的专有名称。并将静态类保留在主命名空间中,以避免用户定义使用子命名空间只是为了使用每个子命名空间的主静态类。
无论如何,谢谢你们回答和提出建议。
答案 0 :(得分:2)
理想情况下,命名空间和类之间应该有明显的区别。命名空间是包,类就在那个包中。例如,你有一个包含苹果和橘子的篮子,你不想叫篮子苹果,是吗?
如果你真的必须保留这些名称,那么不要在开头使用“使用Core.Interface”引用命名空间,而是在每次使用时调用完整的类路径,这样编译器就知道你正在使用哪一个。
另一种选择是使用 alias ,例如using InterfaceNameSpace = Core.Interface;
如果要使用子类类并使用静态类的完整路径,请使用InterfaceNameSpace定义。
答案 1 :(得分:2)
将名称空间Interface
重命名为Interfaces
;因为名称空间通常包含多个类,后缀s
不会破坏语义,可能会更好。