C# c中的命名空间错误#

C# c中的命名空间错误#,c#,namespaces,C#,Namespaces,我在命名空间Inventory\u Software.BL中有一个名为BL的类,我想在Inventory\u Software.PL.Item\u Master类中访问该类,但不考虑使用语法 使用Inventory\u Software.BL在该类中的命名空间名称之前,我得到一个错误: 'Inventory_Software.BL' is a 'namespace' but is used like a 'type' 每当我尝试使用语法初始化BL类时: BL businesslayer = n

我在命名空间
Inventory\u Software.BL
中有一个名为BL的类,我想在
Inventory\u Software.PL.Item\u Master
类中访问该类,但不考虑使用语法
使用Inventory\u Software.BL
在该类中的命名空间名称之前,我得到一个错误:

'Inventory_Software.BL' is a 'namespace' but is used like a 'type'
每当我尝试使用语法初始化BL类时:

BL businesslayer = new BL();

有人能告诉我原因吗?

由于其Inventory\u Software.BL,您已经在名称空间内初始化了名称空间,请执行以下操作:

Inventory_Software.BL businessLayer = new Inventory_Software.Bl();

由于其Inventory_Software.BL,您已经在名称空间内初始化了名称空间,请执行以下操作:

Inventory_Software.BL businessLayer = new Inventory_Software.Bl();

基本上,当您开始给一个类命名为名称空间时,您会感到非常痛苦。只是不要这样做——重命名类或命名空间

您可能可以使用合适的使用指令来解决这个问题,但它真的值得这么多的痛苦吗?(我个人不会使用“BL”作为名称空间或类的名称,也不会在名称中使用下划线;但这是另一回事。)

Eric Lippert对此发表了一篇帖子——“不要将类命名为与其命名空间相同的名称”:


基本上,当您开始给一个类命名为名称空间时,您会感到非常痛苦。只是不要这样做——重命名类或命名空间

您可能可以使用合适的使用指令来解决这个问题,但它真的值得这么多的痛苦吗?(我个人不会使用“BL”作为名称空间或类的名称,也不会在名称中使用下划线;但这是另一回事。)

Eric Lippert对此发表了一篇帖子——“不要将类命名为与其命名空间相同的名称”:


编译器无法区分是引用名称空间还是键入名称空间。将名称空间更改为非BL,或将类的名称更改为非BL。可以将其称为BusinessLayer

编译器无法区分是引用名称空间还是键入名称空间。将名称空间更改为非BL,或将类的名称更改为非BL。您是否检查了名为
BL
命名空间
和名为
BL
的类。如果是这样,您需要使用对类的完整引用或更改类/命名空间的名称。

您是否检查了名为
BL
命名空间和名为
BL
的类。如果是这样,您需要使用类的完整引用或更改类/命名空间的名称。

您正在尝试创建BL的对象。但BL不是类。它只是一个名称空间

可以通过指定类的名称来创建类的对象。在您的代码中,您必须具有

YourClass的公共类名称

{

//你的方法在这里

}

因此,在这种情况下,您将能够编写

NameofYourClass yourObject = new NameofYourClass();

您正在尝试创建BL的对象,但BL不是类。它只是一个名称空间

可以通过指定类的名称来创建类的对象。在您的代码中,您必须具有

YourClass的公共类名称

{

//你的方法在这里

}

因此,在这种情况下,您将能够编写

NameofYourClass yourObject = new NameofYourClass();

看起来您有一个类Inventory\u Software.BL.BL,您正试图从Inventory\u Software.PL.Item\u Master的范围访问它

正如所料,非限定名称BL将解析为“Inventory\u Software.BL”,而不是“Inventory\u Software.BL.BL”

您可以通过添加以下任一用法来删除

使用Inventory_Software.BL; 或者干脆
使用BL

看起来您有一个类Inventory\u Software.BL.BL,并且您正试图从Inventory\u Software.PL.Item\u Master的范围访问它

正如所料,非限定名称BL将解析为“Inventory\u Software.BL”,而不是“Inventory\u Software.BL.BL”

您可以通过添加以下任一用法来删除

使用Inventory_Software.BL; 或者干脆
使用BL

四个部分都在这里:@Eric:Doh-没有注意到其余部分,抱歉:)四个部分都在这里:@Eric:Doh-没有注意到其余部分,抱歉:)