C#命名空间,文件夹,编译器错误

时间:2017-12-06 20:23:04

标签: c# compiler-errors namespaces

我正在使用VS 2017 v15.5.0。

我有一个名为Con_02的最小控制台项目。此项目中主类的名称空间只是Con_02(类如下所示)。

在这个项目中,我添加了一个名为Business的新文件夹。在Business文件夹中,我创建了一个名为Employee的类。 VS为Employee类生成的默认命名空间为Con_02.Business。我将此命名空间简化为Business

回到我的主课程中,我实例化了Employee。这是我的完整主要课程:

namespace Con_02 {
    class Program {
        Business.Employee e1 = new Business.Employee();

        private static void Main() { }
    }
}

到目前为止,这么好。一切都在汇编。

现在,我在Company文件夹中创建了另一个类Business。 VS生成名称空间Con_02.Business

现在,主Con_02.Program类不再编译。具体来说,创建之前编译得很好的Business.Employee对象会给我一个编译器错误:

  

类型或命名空间名称'员工'名称空间中不存在' Con_02.Business' (你错过了一个程序集引用吗?)

我没有问过如何解决这个问题,因为我试图理解为什么编译器似乎假定相对于Con_02的命名空间。

2 个答案:

答案 0 :(得分:1)

由于您正在创建一个名为Con_02.Business的新命名空间,其中包含Company类,因此Business.Employee被视为在Con_02.Business命名空间下,但Con_02.Business只包含Company类。

enter image description here

最好改变

namespace Con_02.Business
{
    class Company
    {
    }
}

namespace Business
{
    class Company
    {
    }
}

或只使用Employee e1 = new Employee();

记住命名空间只是关于对类进行分组。

答案 1 :(得分:0)

添加

using Business;

位于Program课程的顶部。

并从您的Employee实例中删除Business-part。

OR。为所有类使用相同的命名空间。