gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 10:46:16 27 4
gpt4 key购买 nike

我正在使用 VS 2017 v15.5.0。

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

在这个项目中,我添加了一个名为 Business 的新文件夹。 .内Business文件夹我创建了一个名为的类,Employee . VS 为 Employee 生成的默认命名空间类(class)是 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以前编译得很好的对象,给了我一个编译器错误:

The type or namespace name 'Employee' does not exist in the namespace 'Con_02.Business' (are you missing an assembly reference?)



我不是在问如何解决这个问题,而是在试图理解为什么编译器似乎假定一个相对于 Con_02 的命名空间.

最佳答案

由于您正在创建一个名为 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();
记住命名空间只是关于对类进行分组。

关于C# 命名空间、文件夹、编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47682865/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com