在C#Project

时间:2016-05-04 11:17:32

标签: c# namespaces project add

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

当我右键单击Project of Project时,我没有找到添加新命名空间的链接,类似地右键单击Project-Named命名空间。

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

  • 是否需要在每个命名空间中使用Main方法?

  • 项目名称应与名称空间名称相同,然后如何添加 新项目在同一个项目中?

3 个答案:

答案 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 patterns
namespace

更新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项目的引用。