我正在使用VS 2017 v15.5.0。
我有一个名为Con_02
的最小控制台项目。该项目中主类的 namespace 只是Con_02
(该类如下所示)。
在这个项目中,我添加了一个名为Business
的新文件夹。在Business
文件夹中,创建一个名为Employee
的类。 VS为Employee
类生成的默认 namespace 是Con_02.Business
。我将此 namespace 简化为Business
。
回到我的主类中,我实例化Employee
。这是我完整的主要类(class):
namespace Con_02 {
class Program {
Business.Employee e1 = new Business.Employee();
private static void Main() { }
}
}
到现在为止还挺好。一切都会编译。
现在,我在
Company
文件夹中创建另一个类Business
。 VS生成一个 namespace Con_02.Business
。现在,主要
Con_02.Program
类不再编译。具体来说,以前已经编译好的Business.Employee
对象的创建给了我一个编译器错误:我并不是在问如何解决该问题,因为我试图理解为什么编译器似乎采用相对于
Con_02
的命名空间。 最佳答案
由于您正在创建一个名为Con_02.Business的新命名空间,其中包含Company类,因此Business.Employee被视为在Con_02.Business命名空间下,但是Con_02.Business除了Company类之外什么都不包含。
最好改变
namespace Con_02.Business
{
class Company
{
}
}
至
namespace Business
{
class Company
{
}
}
或只使用
Employee e1 = new Employee();
请记住,命名空间仅是关于对类进行分组。
关于c# - C#命名空间,文件夹,编译器错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47682865/