在C#项目中添加新名称空间
我想给C#项目添加一个新的名称空间,还要在新创建的名称空间中添加一些类 当我右键单击项目的解决方案时,并没有找到任何添加新名称空间的链接,类似地,我也右键单击名为namespace的项目在C#项目中添加新名称空间,c#,namespaces,project,add,C#,Namespaces,Project,Add,我想给C#项目添加一个新的名称空间,还要在新创建的名称空间中添加一些类 当我右键单击项目的解决方案时,并没有找到任何添加新名称空间的链接,类似地,我也右键单击名为namespace的项目 如何向现有项目添加新名称空间 是否需要在每个命名空间中都有一个带有Main方法的类 项目名称应与命名空间名称相同,然后如何添加 同一项目中的新项目 如何向现有项目添加新名称空间? 只需在项目中添加一个新文件夹,您将在其中放置新类。然后,文件夹名称是命名空间:[projectname].[foldername
- 如何向现有项目添加新名称空间
- 是否需要在每个命名空间中都有一个带有Main方法的类
- 项目名称应与命名空间名称相同,然后如何添加 同一项目中的新项目
- 如何向现有项目添加新名称空间? 只需在项目中添加一个新文件夹,您将在其中放置新类。然后,文件夹名称是命名空间:[projectname].[foldername]的一部分
- 是否需要在每个命名空间中都有一个带有Main方法的类?不,一点也不
- 项目名称应与命名空间名称相同,那么如何在同一项目中添加新名称?默认情况下,项目名称是命名空间的第一部分。文件夹也是命名空间的一部分,例如:[projectname].[foldername].[subfoldername].[etc]
namespace Foo.Bar
{
public class FooBar
{
...
}
}
在回答每个问题之前,我想与大家分享一下MSDN中的内容: 关键字用于声明包含一组相关对象的范围。您可以使用命名空间来组织代码元素并创建全局唯一的类型 问题1 如何向现有项目添加新名称空间 当您创建一个类时,您可以将它放置在几乎任何您想要的名称空间中,它可以是完全组成的,也可以是已经存在的名称空间
namespace Something.That.No.One.Else.Has
{
public class FooBar() { }
}
现在,这个Something.That.No.One.Else.Has
命名空间在我的整个应用程序中都是可用的。我需要使用using
语句来消费FooBar
类,除非消费类位于同一命名空间中
问题2
是否需要在每个命名空间中都有一个带有Main方法的类
不,语言中没有要求强制执行此操作。对于.exe
,您可能正在考虑使用静态void Main
问题3
项目名称应与命名空间名称相同,那么如何在同一项目中添加新名称
正如我在回答1中提到的,您可以简单地创建一个您认为合适的名称空间
。出于组织上的原因,我建议您启动一个新项目,因为这可能会让任何在您的源代码中开始工作的人感到困惑
创建新项目时,遵循的命名约定是将项目的默认命名空间设置为项目名称
更新
在听到OP的消息后,我想我对这个困境有了更好的理解
在项目中,您应该创建一个与文件及其各自实现的关系相关的文件夹结构。以下建议来自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
| +-- ...
(|)[.]
.
+--图表
|+--SomeGraphClass.cs//位于CompanyName.Product.Graphs命名空间中
| +-- ...
+--资料
|+--SomeDataClass.cs//位于CompanyName.Product.Data命名空间中
| +-- ...
+--接口
|+--IFooBar.cs//位于CompanyName.Product.Interfaces命名空间中
| +-- ...
更新2
文件夹结构(默认情况下)指定类的
名称空间
。例如,当您右键单击文件夹并Add>newitem>Class
时,它将在该文件夹中创建一个类,但它将为其提供所述的名称空间
。实际上,我刚刚在WPF项目中遇到过类似的情况。也许,这不是我的情况的确切标题,但当我搜索它时,我找不到任何合适的解决方案。希望它能帮助别人
长话短说
我在“解决方案”下创建了一个新的C#项目。我只想使用新项目中包含的一个类定义。但是,即使我在.xaml代码中添加以下代码段,我也无法使用“路径”
xmlns:Path="clr-namespace:namespace;assembly=namespace"
因此,我所做的只是添加项目作为对我主要项目的引用。@ZiNNED——如果我们在新添加的文件夹中添加4个类,其中4个类中的每一个都必须实现一个
接口,那么在哪里定义该接口呢?在每个类中,要定义相同的接口
,将接口放在何处并不重要。只要在使用它的类中引用它。接口可以存在于其自己的命名空间或文件夹中,例如[projectname].interfaces
。然后在类中,您在using
部分引用该名称空间,例如:using[projectname].interfaces
@ZiNNED——如果我们按照您的建议为接口创建一个单独的文件夹,那么我们是否必须首先在“interfaces”文件夹中定义一个类,然后在该类中定义一个接口,或者我们可以直接在该文件夹中定义一个接口?您可以通过右键单击该文件夹直接添加一个接口,选择Add
->newitem…
,然后选择visualc#
->code
,并选择接口
类型。@David--因为我想把我的一些项目类分开,因为它们与图形实现有关,所以这些类放在哪里以及如何放?不在单独的名称空间中?我将稍微更新我的答案,因为我认为我更了解您所处的困境。@David--正如您在更新中建议的,将图形相关的实现放在CompanyName.Product.Graphs
名称空间中,那么Graphs
是文件夹还是名称空间?这就是我要问的问题:如何在同一个项目中添加新的命名空间?@David-