命名空间和子命名空间

Cod*_*ker 18 c# namespaces

有没有办法使用命名空间,然后让它自动使用所有子命名空间?

例:

namespace Root.Account
{
//code goes here
}

namespace Root.Orders
{
//code goes here
}


//New File:
using Root;
Run Code Online (Sandbox Code Playgroud)

为了让我使用Root.Account中的代码,我需要使用Root.Account添加到我的代码中.

我希望能够说使用Root并让它获取任何子命名空间类以供使用.

如果这是有道理的,这可能吗?

谢谢

Jon*_*eet 26

没有,没有什么工作这种方式的树.但是,您不需要包含使用指令来上升树.换句话说,如果您使用:

namespace Root.Orders
{
    // Code
}
Run Code Online (Sandbox Code Playgroud)

然后任何类型Root已经可见.

  • 好的,这很有趣.所以,假设我有一个命名空间Root.Orders.OrderItems,我在我的指令中使用了这个,我可以使用Root和Root.Orders中的任何类吗? (4认同)
  • 否 - 它只是名称空间,位于您搜索类型的命名空间的层次结构中.换句话说,它是具有此"功能"的命名空间指令,而不是using指令. (3认同)

Ant*_*lev 9

不,usingC#中的指令不允许这样:

创建using指令以使用命名空间中的类型,而无需指定命名空间.using指令不允许您访问嵌套在指定名称空间中的任何名称空间.

但是,VB.NET 支持使用Imports语句更接近的行为:

Imports语句提供的元素范围取决于使用Imports语句时的具体情况.例如,如果仅指定了命名空间,则该命名空间的所有唯一命名成员以及该命名空间中的模块成员都可以无限制地使用.如果同时指定了命名空间和该命名空间的元素名称,则只有该元素的成员可以无限制地使用.

也就是说,如果你说

Imports Root
Run Code Online (Sandbox Code Playgroud)

然后你就可以说了Orders.Whatever.