关于C#的基本问题 - 我需要命名空间吗?

时间:2010-09-20 10:28:58

标签: c# namespaces

我是一名Java开发人员,对C#来说是全新的。我目前正在编写一个DLL,以便在我的组织中进行分发。它是一个非常简单的库,包含几个类,我认为没有任何实际用途,只是为了它而将所有这些类放入某个命名空间。我真的必须使用命名空间吗?如果是这样,为什么?这是一种最佳做法吗?

6 个答案:

答案 0 :(得分:15)

需要一个吗?不,你应该吗?是。它有助于防止在其他命名空间中使用同名的类发生冲突,而不必诉诸{IMHO}丑陋地使用global::

答案 1 :(得分:11)

对于一次性测试应用程序(例如检查Stack Overflow答案),我不使用命名空间。对于任何其他,我做。这只是一个组织事物 - 如果你要重用代码,将它与你在同一个环境中重用的其他代码分开是有帮助的。我的意思是,如果您使用LibraryX和LibraryY创建应用程序,那么能够在应用程序中区分它们是有用的。例如,它们可能都使用相同的类名 - 如果不使用名称空间,这将使代码变得丑陋。

除了其他任何东西,如果你使用Visual Studio进行编码,实际上更多的工作而不是来包含命名空间 - 你必须修改项目以给它一个空的默认命名空间。 / p>

答案 2 :(得分:0)

无需拥有命名空间。但是开发人员工作室希望您使用名称空间。例如,当您选择将类添加到项目时,开发人员工作室将:

  • 为班级
  • 创建一个文件
  • 将文件添加到项目
  • 在项目的默认命名空间中创建一个空类(在上面的文件中)。

“项目的默认命名空间”是开发人员工作室概念,而不是C#概念,并且在项目的属性中设置。

当您为其他人创建一个dll时,如果您有名称空间,那么对于您的dll用户来说会更容易:

  • 人们希望你有一个命名空间(如果你不这样做,可能会感到困惑)
  • 如果您的类(或枚举等)与其链接到的任何dll中的另一个类名称相同,则命名空间会使您的用户更容易。

因此,我认为没有充分理由不使用命名空间。

答案 3 :(得分:0)

我对“是”的投票我觉得使用命名空间是个好习惯。你无法确定人们不会使用相同的类名。

答案 4 :(得分:0)

要回复关于命名类与命名空间相同的注释,请阅读以下文章中的一些内容。

简短版:不要这样做。

http://blogs.msdn.com/b/ericlippert/archive/2010/03/09/do-not-name-a-class-the-same-as-its-namespace-part-one.aspx

答案 5 :(得分:0)

基本上,System是asp.net C#中的根命名空间。 在.net中,每个程序都使用默认名称空间创建。此默认名称空间称为全局名称空间。但是程序本身会创建任意数量的命名空间,每个命名空间都是唯一的名称。

了解更多 http://asp-net-by-parijat.blogspot.in/2015/08/what-is-namespace-in-c-need-of.html