代码之家  ›  专栏  ›  技术社区  ›  CodeLikeBeaker

命名空间和子命名空间

  •  17
  • CodeLikeBeaker  · 技术社区  · 16 年前

    有没有方法使用一个名称空间,然后让它自动使用所有子名称空间?

    例子:

    namespace Root.Account
    {
    //code goes here
    }
    
    namespace Root.Orders
    {
    //code goes here
    }
    
    
    //New File:
    using Root;
    

    为了让我使用root.account中的代码,我需要将using root.account添加到我的代码中。

    我只想说使用根目录,并让它获取任何子名称空间类以供使用。

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

    谢谢

    6 回复  |  直到 9 年前
        1
  •  24
  •   Jon Skeet    16 年前

    不,那样没什么用 向下 树。但是,您不需要包括使用指令 向上的 树。换句话说,如果您使用:

    namespace Root.Orders
    {
        // Code
    }
    

    然后输入 Root 已经可见。

        2
  •  9
  •   Anton Gogolev    16 年前

    不, using C指令 does not allow 这是:

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

    但是,vb.net, supports 更亲密的行为 Imports 声明:

    imports语句提供的元素的范围取决于使用imports语句时的具体程度。例如,如果只指定了一个名称空间,那么该名称空间中所有唯一命名的成员以及该名称空间中模块的成员都可以在没有限定的情况下使用。如果同时指定了名称空间和该名称空间元素的名称,则只有该元素的成员在没有限定条件的情况下可用。

    也就是说,如果你说

    Imports Root
    

    那你就可以说 Orders.Whatever .

        3
  •  2
  •   Will Eddins ianpoley    16 年前

    从你陈述最初的问题的方式来看,听起来你可能意识到,或者可能没有意识到,仅仅使用:

    using Root;
    

    稍后澄清代码的方法是:

    Account.Class obj = new Account.Class();
    Orders.Class obj = new Orders.Class();
    

    您不必使用using root.account来访问代码,也可以使用root.orders。 除此之外,无法自动递归地使用名称空间。我认为这会导致滥用使用系统;

        4
  •  1
  •   J. Steen    16 年前

    不,不是真的。=)

        5
  •  1
  •   Daniel Brückner    16 年前

    .NET/C不支持此形式的命名空间使用。

        6
  •  -1
  •   parijat mishra    9 年前

    名称空间类似于对象的容器。它们可以包含联合、结构、类、委托和接口。ASP.NET C中名称空间的主要重要性在于创建程序的层次结构。

    了解日志的更多信息… http://asp-net-by-parijat.blogspot.in/2015/08/what-is-namespace-in-c-need-of.html