在 C# 项目中添加新的命名空间
Adding new Namespace in C# Project
我想向 C# 项目添加一个新的命名空间,并且要在新创建的命名空间中添加 class 个。
当我右键单击项目的解决方案时,我没有找到任何link来添加新的命名空间,同样通过右键单击项目命名空间也是如此。
如何为现有项目添加新的命名空间?
是否有必要在每个命名空间中有一个 class 和 Main 方法?
项目名要和命名空间名一样,然后如何添加
同一项目中的新成员?
如何为现有项目添加新的命名空间?
只需向您的项目添加一个新文件夹,您将在其中放置新的 classes。文件夹名称是命名空间的一部分:[projectname].[foldername]
是否有必要在每个命名空间中有一个带有 Main 方法的 class? 不,一点也不。
项目名称要和命名空间名称相同,那么如何在同一个项目中添加新的? 默认情况下,项目名称是命名空间的第一部分。文件夹也是命名空间的一部分,如下所示:[projectname].[foldername].[subfoldername].[etc]
请注意,您始终可以通过覆盖默认生成的命名空间来覆盖 classes 的命名空间:
namespace Foo.Bar
{
public class FooBar
{
...
}
}
在回答每个问题之前,我想从 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?
当您创建一个 class 时,您几乎可以将其放置在您喜欢的任何名称空间中,它可以完全组成或已经存在。
namespace Something.That.No.One.Else.Has
{
public class FooBar() { }
}
现在,这个 Something.That.No.One.Else.Has
命名空间在我的整个应用程序中都可用。我需要使用 using
语句来使用 FooBar
class,除非使用的 class 在同一个命名空间中。
问题二
Is it necessary to have a class with Main Method in each namespace?
不,语言中没有内置强制要求。您可能正在考虑 static void Main
用于 .exe
。
问题3
The project name should be same as namespace name, then how to add new in same project?
正如我在 回答 1 中提到的,您可以简单地创建一个您认为合适的 namespace
。出于组织原因,我建议开始一个新项目,因为这可能会使开始使用您的源代码的任何人感到困惑。
创建新项目时,遵循的命名约定是将项目的默认命名空间设置为项目名称。
更新
听了OP之后,我想我对困境有了更好的理解。
在您的项目中,您应该创建一个与文件关系及其各自实现相关的文件夹结构。遵循来自 Microsoft.
的推荐 practices and patterns
<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
文件夹结构(默认情况下)决定了 class 的 namespace
。例如,当您右键单击该文件夹并 Add > New Item > Class
- 它将在该文件夹中创建一个 class,但它会按照描述为其提供 namespace
。
其实我刚刚在我的WPF项目中遇到过这样的情况。也许,这不是我的情况的确切标题,但当我搜索它时,我找不到任何合适的解决方案。希望对其他人有帮助,
长话短说;
我在 'Solution' 下创建了一个新的 C# 项目。我只想使用新项目中包含的 class 定义之一。但是,即使我将以下代码片段添加到我的 .xaml 代码中,我也无法使用 'Path'.
xmlns:Path="clr-namespace:namespace;assembly=namespace"
所以我所做的只是将项目添加为对我的 Leading 项目的引用。
我想向 C# 项目添加一个新的命名空间,并且要在新创建的命名空间中添加 class 个。
当我右键单击项目的解决方案时,我没有找到任何link来添加新的命名空间,同样通过右键单击项目命名空间也是如此。
如何为现有项目添加新的命名空间?
是否有必要在每个命名空间中有一个 class 和 Main 方法?
项目名要和命名空间名一样,然后如何添加 同一项目中的新成员?
如何为现有项目添加新的命名空间? 只需向您的项目添加一个新文件夹,您将在其中放置新的 classes。文件夹名称是命名空间的一部分:[projectname].[foldername]
是否有必要在每个命名空间中有一个带有 Main 方法的 class? 不,一点也不。
项目名称要和命名空间名称相同,那么如何在同一个项目中添加新的? 默认情况下,项目名称是命名空间的第一部分。文件夹也是命名空间的一部分,如下所示:[projectname].[foldername].[subfoldername].[etc]
请注意,您始终可以通过覆盖默认生成的命名空间来覆盖 classes 的命名空间:
namespace Foo.Bar
{
public class FooBar
{
...
}
}
在回答每个问题之前,我想从 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?
当您创建一个 class 时,您几乎可以将其放置在您喜欢的任何名称空间中,它可以完全组成或已经存在。
namespace Something.That.No.One.Else.Has
{
public class FooBar() { }
}
现在,这个 Something.That.No.One.Else.Has
命名空间在我的整个应用程序中都可用。我需要使用 using
语句来使用 FooBar
class,除非使用的 class 在同一个命名空间中。
问题二
Is it necessary to have a class with Main Method in each namespace?
不,语言中没有内置强制要求。您可能正在考虑 static void Main
用于 .exe
。
问题3
The project name should be same as namespace name, then how to add new in same project?
正如我在 回答 1 中提到的,您可以简单地创建一个您认为合适的 namespace
。出于组织原因,我建议开始一个新项目,因为这可能会使开始使用您的源代码的任何人感到困惑。
创建新项目时,遵循的命名约定是将项目的默认命名空间设置为项目名称。
更新
听了OP之后,我想我对困境有了更好的理解。
在您的项目中,您应该创建一个与文件关系及其各自实现相关的文件夹结构。遵循来自 Microsoft.
的推荐 practices and patterns<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
文件夹结构(默认情况下)决定了 class 的 namespace
。例如,当您右键单击该文件夹并 Add > New Item > Class
- 它将在该文件夹中创建一个 class,但它会按照描述为其提供 namespace
。
其实我刚刚在我的WPF项目中遇到过这样的情况。也许,这不是我的情况的确切标题,但当我搜索它时,我找不到任何合适的解决方案。希望对其他人有帮助,
长话短说;
我在 'Solution' 下创建了一个新的 C# 项目。我只想使用新项目中包含的 class 定义之一。但是,即使我将以下代码片段添加到我的 .xaml 代码中,我也无法使用 'Path'.
xmlns:Path="clr-namespace:namespace;assembly=namespace"
所以我所做的只是将项目添加为对我的 Leading 项目的引用。