我想为C#项目添加一个新的命名空间,还要在新创建的命名空间中添加一些类。
当我右键单击Project of Project时,我没有找到添加新命名空间的链接,类似地右键单击Project-Named命名空间。
如何向现有项目添加新名称空间?
是否需要在每个命名空间中使用Main方法?
项目名称应与名称空间名称相同,然后如何添加 新项目在同一个项目中?
答案 0 :(得分:9)
在回答每个问题之前,我想通过 MSDN 分享此内容:
namespace
关键字用于声明包含一组相关对象的范围。您可以使用命名空间来组织代码元素并创建全局唯一类型。
问题1
如何向现有项目添加新名称空间?
创建一个类时,您可以将它放在几乎任何您喜欢的命名空间中,它可以完全组成或者已经存在。
namespace Something.That.No.One.Else.Has
{
public class FooBar() { }
}
现在,我的应用程序中可以使用此Something.That.No.One.Else.Has
命名空间。我需要使用using
语句来使用FooBar
类,除非消费类在同一名称空间中。
问题2
是否需要在每个命名空间中都有一个带有Main Method的类?
不,这种语言没有内置任何要求。您可能会考虑static void Main
的{{1}}。
问题3
项目名称应该与命名空间名称相同,那么如何在同一项目中添加新项目?
正如我在回答1 中提到的,您可以根据需要创建.exe
。我建议出于组织原因开始一个新项目,因为对于那些开始在你的来源工作的人来说,这可能会让人感到困惑。
创建新项目时,遵循的命名约定是将项目的默认命名空间设置为项目名称。
<强>更新强>
在听取OP的意见后,我想我对这种困境有了更好的理解。
在项目中,您应该创建一个与文件关系及其各自实现相关的文件夹结构。遵循 Microsoft 。
中推荐的practices and patternsnamespace
更新2
文件夹结构(默认情况下)指示类的<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
| +-- ...
。例如,当您右键单击文件夹namespace
时 - 它将在该文件夹中创建一个类,但它将按照描述为其提供Add > New Item > Class
。
答案 1 :(得分:2)
如何向现有项目添加新名称空间? 只需在项目中添加一个新文件夹,您将在其中放置新类。然后文件夹名称是命名空间的一部分:[projectname]。[foldername]
是否有必要在每个命名空间中使用Main方法? 不,完全没有。
项目名称应与名称空间名称相同,那么如何在同一项目中添加新名称? 默认情况下,项目名称是命名空间的第一部分。文件夹也是命名空间的一部分,如下所示:[projectname]。[foldername]。[subfoldername]。[etc]
注意,您只需覆盖默认生成的命名空间即可覆盖类的命名空间:
namespace Foo.Bar
{
public class FooBar
{
...
}
}
答案 2 :(得分:0)
实际上,我在WPF项目中遇到过这种情况。也许,这不是我所处情况的确切标题,但是当我进行搜索时,找不到任何合适的解决方案。希望对别人有帮助,
长话短说;
我在“解决方案”下创建了一个新的C#项目。我只是想使用新项目中包含的类定义之一。但是,即使我将以下代码段添加到.xaml代码中,也无法使用“路径”。
xmlns:Path="clr-namespace:namespace;assembly=namespace"
所以我所做的只是添加项目作为对Leading项目的引用。