C#中的命名空间是否类似于Java中的包

时间:2014-01-01 19:14:25

标签: c# java namespaces

如主题所述。我不明白命名空间的想法。这应该像Java中的包一样工作吗?

5 个答案:

答案 0 :(得分:12)

它们相似但不一样。特别是,名称也用于Java中的访问控制(其中默认访问使成员在同一个包中可用)。在.NET中情况并非如此 - 名称空间在.NET中根本不会进入可访问性。

此外,导入类型的方式在C#和Java之间可能有所不同:在Java中,您可以导入单个类,而在C#中,common using指令导入整个命名空间。另一方面,C#using指令也可以指定Java不支持的别名。

包和命名空间都是对相关类型进行分组的方式,所以在这种程度上它们是相同的......但它们的细节不同。

答案 1 :(得分:4)

是的,它们是相同的概念,除了Namespace是关于C#中的类的逻辑分组,而在Java Package中是关于类的逻辑分组和物理分组。

答案 2 :(得分:4)

是的,C#中的命名空间和Java中的包是相同的概念。

<强>爪哇:

package Project.Providers;

<强> C#:

namespace Project.Providers {

}

导入包的方式也不同:

<强>爪哇:

import Project.Providers.*;

<强> C#:

using  Project.Providers;

答案 3 :(得分:2)

是的,没错。在Java中,您使用

    Import packagename.*;

在.net中是

    using namespacename;

答案 4 :(得分:1)

是的,但有区别。在Java中,特定文件中的每个类。但在c#中,一个命名空间可以包含许多其他命名空间。它们将编译成一个dll或exe文件。

相关问题