令.NET烦恼的一件事是,名称空间应该是Pascal,这可能导致名称空间/类名冲突。
请考虑以下事项:
namespace MyCompany.MyProduct.SalesOrder {
public class SalesOrder {
}
}
这是完全有效的代码,但SalesOrder
作为类的消费者现在必须使用MyCompany.MyProduct.SalesOrder.SalesOrder
的完全限定名称,否则编译会导致恼人的'MyCompany.MyProduct.SalesOrder' is a 'namespace' but is used like a 'type'
错误。
其他人正在做些什么来解决这个问题?有些地方,我看到其他人只是反对规则,并使用小写包,这确实吸引我,但我喜欢符合标准,并使用适当的外壳。在我的使用中,到目前为止,我已经在可能的情况下订阅了基于复数的名称空间名称的概念,但这有时看起来很丑陋。
我个人认为,.NET已经弄错了,应该像Java的软件包一样使用低级的名称空间。
答案 0 :(得分:3)
将SalesOrder
作为命名空间的目的是什么?命名空间应该是一个“空格”,因此它应该涵盖多个类。遵循此规则,您不应该在类和名称空间之间发生冲突。
答案 1 :(得分:2)
它完全赞同你,这种行为绝对令人讨厌。我通常只是给命名空间一个更通用的名称。在您的情况下,我会选择类似MyCompany.MyProduct.SalesOrderManagement
或MyCompany.MyProduct.SalesOrders
的内容。