为什么名称空间类型不应该依赖于嵌套的名称空间类型?

时间:2012-07-13 01:52:28

标签: c# namespaces

在.Net命名指南(http://msdn.microsoft.com/en-us/library/893ke618(v=vs.71).aspx)中有以下声明:

“嵌套命名空间应该依赖于包含命名空间中的类型。例如,System.Web.UI.Design中的类取决于System.Web.UI中的类。但是,System中的类。 Web.UI不依赖于System.Web.UI.Design中的类。“

我想知道:为什么?

2 个答案:

答案 0 :(得分:6)

因为在你考虑它时它是有道理的。

让我用一个小例子来解释:

  

刀片例如需要手柄才能成为   “刀”。

     

但手柄需要刀片作为手柄,对吗?

using KitchenSet;
using KitchenSet.Knives; // This is where your knives (what uses Blades) would live.
using KitchenSet.Knives.Blades; // The actual blades. 

答案 1 :(得分:0)

这是明智的规则,因为System.Web.UI命名空间中定义的类对于System.Web.UI.Design中定义的类是可见的,但System.Web.UI.Design命名空间中定义的类不是对于System.Web.UI命名空间中定义的类是可见的。在后一种情况下,有必要添加一个using语句(在VB.NET中导入)。