我想向 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/