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

C#:名称空间和类结构

  •  3
  • Yossale  · 技术社区  · 15 年前

    来自Java,我已经习惯了包的结构(com.domain.appname(第1层) 现在我开始着手一个C项目,所有项目的深度都是1:


    - 公用事业公司
    - 验证.cs

    - 提取.cs

    所有的cs文件大约有2500行长。。。

    如何在C语言中对类和名称空间进行排序,使其有意义,并保持源文件的逻辑大小?

    7 回复  |  直到 15 年前
        1
  •  9
  •   Tim Robinson    15 年前

    就像我在Java中想象的那样:

    • 一些(<10?)每个命名空间中的类,命名空间按层次结构排列
    • 每个源文件一个类

    你参加的项目听起来不是很有条理,也不是一个好的源代码组织的好例子。

        2
  •  3
  •   Grzenio    15 年前

        3
  •  2
  •   Martin Liversage    15 年前

    我建议阅读微软关于这个问题的指南:

    Design Guidelines for Developing Class Libraries

    您应该特别注意以下部分:

    Guidelines for Names

    即使您没有编写类库,您仍然可以从这些指导原则中获益匪浅。FxCop(或现在命名的代码分析)将标记许多不符合这些准则的构造。

        4
  •  1
  •   Kev Hunter    15 年前

    我首先开始将类分组到功能区域中,例如,授权区域位于项目中的文件夹下。

    然后更新文件夹中类的名称空间以反映更改,Resharper会为您这样做,而较新版本的VS可能也会这样做。

        5
  •  1
  •   user1228 user1228    15 年前

    下面是一个如何组织解决方案的示例,它反映了名称空间结构。

    alt text

    这个项目有一个默认的名称空间,在本例中是公司名称.项目名称 源文件在逻辑上被组织成一个目录结构。在本例中,我的WF4活动设计器组织在 活动 在一个名为 .

    VS的工作方式是,当您在项目中创建目录时,您也在创建 名称空间 . 因此,如果我要在显示的目录中添加一个名为“Foo”的新活动设计器,它的命名空间将是

    "CompanyName.ProjectName.Activities.Designers"

    VisualStudio采用默认名称空间,然后使用文件夹结构来确定特定文件的名称空间。当然,一旦创建了文件并移动了文件,它就不会自动重构。但是这个系统不仅可以很好地控制类的名称空间,而且可以保持文件的组织。

        6
  •  0
  •   Niels van der Rest    15 年前

    在Java中,包在物理目录中组织类。我不确定,但编译器甚至鼓励这个约定IIRC。在C#中,您不必将类组织到与名称空间匹配的单独目录中,但这是一种非常常见的约定。

    约定,但使用 公司.产品.层 格式。

    如何重新组织大型类取决于应用程序。这是一个应用OOP准则的练习,适用于Java和C。

        7
  •  0
  •   George    15 年前

    包装 相当于 名称空间 在c#。

    推荐文章