在C#Project中添加新的命名空间

mal*_*iks 7 c# namespaces add project

我想为C#项目添加一个新的命名空间,还要在新创建的命名空间中添加一些类.

当我右键单击Project of Project时,我没有找到任何添加新命名空间的链接,类似地右键单击Project-Named命名空间.

  • 如何向现有项目添加新名称空间?

  • 是否有必要在每个命名空间中使用Main方法?

  • 项目名称应与名称空间名称相同,那么如何在同一项目中添加新名称?

Dav*_*ine 10

在回答每个问题之前,我想从MSDN分享这个:

namespace关键字用于声明包含一组相关对象的范围.您可以使用命名空间来组织代码元素并创建全局唯一类型.

问题1

如何向现有项目添加新名称空间?

当您创建一个类时,您可以将它放在几乎任何您想要的命名空间中,它可以完全组成或者已经存在.

namespace Something.That.No.One.Else.Has
{
    public class FooBar() { }
}
Run Code Online (Sandbox Code Playgroud)

现在,这个Something.That.No.One.Else.Has命名空间在我的应用程序中可用.我需要使用该using语句来使用FooBar该类,除非使用类在同一名称空间中.

问题2

是否有必要在每个命名空间中使用Main方法?

不,这种语言没有内置任何要求.你可能在想的static void Main.exe.

问题3

项目名称应与名称空间名称相同,那么如何在同一项目中添加新名称?

正如我在答案1中提到的,您可以根据需要创建一个namespace.我建议,出于组织原因,开始一个新项目,因为它可能会让任何开始在您的源中工作的人感到困惑.

创建新项目时,遵循的命名约定是将项目的默认命名空间设置为项目名称.

更新

在听取OP的意见后,我想我对这种困境有了更好的理解.

在项目中,您应该创建一个与文件关系及其各自实现相关的文件夹结构.下面推荐的实践和模式,微软.

<Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>]

.
+-- Graphs
|   +-- SomeGraphClass.cs // in CompanyName.Product.Graphs namespace
|   +-- ...
+-- Data
|   +-- SomeDataClass.cs  // in CompanyName.Product.Data namespace
|   +-- ...
+-- Interfaces
|   +-- IFooBar.cs        // in CompanyName.Product.Interfaces namespace
|   +-- ...
Run Code Online (Sandbox Code Playgroud)

更新2

文件夹结构(默认情况下)指示namespace类的类型.例如,当您右键单击该文件夹时Add > New Item > Class- 它将在该文件夹中创建一个类,但它将namespace按照描述给它.