如主题所述。我不明白命名空间的想法。这应该像Java中的包一样工作吗?
答案 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文件。