c#中的命名空间错误

时间:2010-11-29 08:19:47

标签: c# namespaces

我在名称空间Inventory_Software.BL中有一个名为 BL 的类,我希望在Inventory_Software.PL.Item_Master类中访问此类,但尽管使用了语法 在该类的命名空间名称前using Inventory_Software.BL,我收到错误:

'Inventory_Software.BL' is a 'namespace' but is used like a 'type'

每当我尝试使用语法

初始化 BL 类时
BL businesslayer = new BL();

有人可以告诉我为什么吗?

6 个答案:

答案 0 :(得分:5)

当你开始给一个与命名空间同名的类时,你基本上处于一个痛苦的世界。只是不要这样做 - 重命名你的类或命名空间。

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

Eric Lippert有关于此的series of four blog帖子 - “不要将类命名为与其命名空间相同”:

答案 1 :(得分:0)

自Inventory_Software.BL以来,您已在命名空间内初始化了命名空间,而是执行此操作:

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

答案 2 :(得分:0)

编译器无法区分您是引用命名空间还是键入命名空间。将名称空间更改为 BL ,或将类的名称更改为 BL 以外的名称。也许称之为 BusinessLayer 而不是......

答案 3 :(得分:0)

您是否检查过您是否有一个名为namespace的{​​{1}}和一个名为BL的班级。如果是这样,您将需要使用对类的完整引用或更改类/命名空间的名称。

答案 4 :(得分:0)

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

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

公共类NameofYourClass

{

//你的方法

}

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

NameofYourClass yourObject = new NameofYourClass();

答案 5 :(得分:0)

看起来你有一个Inventory_Software.BL.BL类,你正试图从Inventory_Software.PL.Item_Master的范围访问它。

正如预期的那样,一个不合格的名称BL会解析为'Inventory_Software.BL'而不是'Inventory_Software.BL.BL'。

您可以通过添加以下任一使用

来取消

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