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

Web applications 如果导入父命名空间,为什么要导入子命名空间?,web-applications,Web Applications,为什么会有人 Import System 以及 Import System.Web.UI.WebControls 如果System是所有名称空间的根目录,那么将导入System放在代码后面有什么害处。导入System不会导入其他较低级别的名称空间。每个级别都必须显式导入。如果导入系统导入了所有较低级别的名称空间,那么几乎没有理由进行导入 但是我们有一个名称空间系统的原因是为了避免不同包包含相同名称的类时发生名称冲突 例如,可能有两个不同的名称空间(组成)System.Secure和Syste

为什么会有人

Import System
以及

Import System.Web.UI.WebControls

如果System是所有名称空间的根目录,那么将导入System放在代码后面有什么害处。

导入System
不会导入其他较低级别的名称空间。每个级别都必须显式导入。

如果导入系统导入了所有较低级别的名称空间,那么几乎没有理由进行导入

但是我们有一个名称空间系统的原因是为了避免不同包包含相同名称的类时发生名称冲突

例如,可能有两个不同的名称空间(组成)
System.Secure
System.unsecure
。两者都可以使用完全相同的名称来处理
http
,但是一个可以使用安全但较慢的协议实现,另一个可以使用不安全但较快的协议实现


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

说导入将只导入名称空间中可用的所有类是否正确。但是,任何进一步的嵌套名称空间都必须显式导入。我自己也不能(也没有)说得更好。