一尘不染

在C#中自动导入嵌套名称空间

c#

抱歉,是否已经问过这个问题。我开始研究C#,发现C#不会自动导入嵌套的名称空间。我不明白:

using System;

应该自动导入System命名空间中包含的所有类吗?所以没有必要我写

using System.Windows.Form;

using Windows.Form什至知道即使工作。但是编译器无法解决它!那using System;之前的意义是什么?那么,为什么不自动using System;导入System.Windows以及System.Windows.Forms-如果在这里单词import错了,对不起。也许移到全局名称空间是正确的术语。


阅读 274

收藏
2020-05-19

共1个答案

一尘不染

C#不是Java。

使用了using指令,因此您不必键入类型的完全限定名称。它还有助于消除类型名称的歧义(例如使用别名)。

在的情况下Console,例如,你不需要类型System.Console

了解名称空间与程序集之间的区别很重要-名称空间是类型的 逻辑 分组。程序集是类型的 物理 分组。命名空间可以跨越程序集。

当您 引用 程序集时(这更像是在Java中导入程序包),您可以访问其中的 所有
公共类型。为了使用类型,您需要唯一地标识它。这是通过名称空间完成的-该using指令仅意味着您不必键入该类型的完全限定名称。

2020-05-19