如果导入父命名空间,为什么要导入子命名空间?

时间:2009-07-20 11:54:51

标签: web-applications

为什么会有人

Import System

以及

Import System.Web.UI.WebControls

如果System是所有命名空间的根,那么在后面的代码中使用Import System会带来什么危害。

2 个答案:

答案 0 :(得分:2)

如果import System确实导入了所有较低级别的命名空间,那么几乎没有理由进行导入。

但我们确实拥有命名空间系统的原因是为了避免名称冲突,其中不同的包包含相同名称的类。

例如,可能有两个不同的命名空间(使这些命名空间为System.SecureSystem.Insecure。两者都可以使用具有完全相同名称的http处理类,但是可以使用安全但速度较慢的协议实现,而其他不安全但更快的协议可以实现。

开发人员可以轻松地在它们之间进行选择,而无需在整个代码中重命名引用。或者,可以使用反射在运行时更轻松地切换代码。

答案 1 :(得分:1)

Import System不会导入其他较低级别的命名空间。必须明确导入每个级别。