c# - 在 C# 项目中添加新的命名空间

标签 c# namespaces project add

我想向 C# 项目添加一个新的命名空间,并且要在新创建的命名空间中添加一些类。

当我右键单击项目的解决方案时,我没有找到任何添加新命名空间的链接,同样通过右键单击 Project-Named 命名空间也是如此。

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

  • 是否有必要在每个命名空间中都有一个带有 Main 方法的类?

  • 项目名称要和命名空间名称一致,然后如何添加 同一项目中的新成员?

最佳答案

在回答每个问题之前,我想分享一下来自 MSDN 的内容:

The namespace keyword is used to declare a scope that contains a set of related objects. You can use a namespace to organize code elements and to create globally unique types.

问题一

How to add a new namespace to existing project?

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

namespace Something.That.No.One.Else.Has
{
    public class FooBar() { }
}

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

问题二

Is it necessary to have a class with Main Method in each namespace?

不,语言中没有内置强制要求。您可能正在考虑将 static void Main 用于 .exe

问题三

The project name should be same as namespace name, then how to add new in same project?

正如我在答案 1 中提到的,您可以简单地创建一个您认为合适的 namespace。出于组织原因,我建议开始一个新项目,因为这可能会使开始使用您的源代码的任何人感到困惑。

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

更新

在听了 OP 之后,我想我对这个困境有了更好的理解。

在您的项目中,您应该创建一个与文件关系及其各自实现相关的文件夹结构。关注推荐practices and patterns来自 Microsoft

<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
|   +-- ...

更新 2

文件夹结构(默认情况下)决定了类的命名空间。例如,当您右键单击该文件夹并选择 Add > New Item > Class - 它会在该文件夹中创建一个类,但会为其指定 namespace,如所述.

关于c# - 在 C# 项目中添加新的命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37026278/

相关文章:

c# - asp.net文本框自动填充

java - 在 Eclipse 和 Netbeans 之间共享项目

asp.net - 一个现代的n层asp.net Web应用程序示例?

asp.net - 如何阻止 Microsoft.Sharepoint.Sandbox.dll 被复制到我的 bin 文件夹中?

c# - 是否可以在 Swagger UI 的参数部分显示请求主体对象?

c# - 在 Visual Studio 2017 中访问 Publish 时出错

java - JAXB:缺少命名空间

具有默认命名空间设置为 xmlns 的 XML 源的 XSLT

Symfony2 访问自定义类

c# - 如何将波斯日期转换为公历日期?