5

由于各种原因,我正在将我的源文件重新组织成一个带有单个项目的解决方案:

这给我留下了许多名称空间,这些名称空间被拆分到多个文件中。到目前为止,我使用的是这个约定:给定命名空间Company.Project.A,文件被命名A.f1.csA.f2.cs等等,Company.Project.B命名空间被分割B.f1.csB.f2.cs等等。

鉴于单个项目的限制,有没有更好的方法来组织多个命名空间中的多个文件?

4

3 回答 3

11

是的 - 使用文件夹。

如果您在项目中创建文件夹,该文件夹中的新类将自动使用文件夹名称作为命名空间的基础。

例如,如果您有一个默认命名空间为“Company.Project”的项目和一个包含“Bar.cs”的文件夹“Foo”,您最终会得到:

using System; // Etc

namespace Company.Project.Foo
{
    class Bar
    {
    }
}
于 2008-12-09T11:18:43.750 回答
2

所以解决方案就在这里。是文件夹。但这有时很棘手。首先,每个班级有一个文件是个好主意。如果您将几个类打包到一个文件中 - 随着时间的推移,您将无法找到它们。

关于文件夹的第二件事 - 如果您单击一个文件夹并选择例如“添加 -> 新项目”,该项目将被放入选定的文件夹中。但要小心!如果您将在文件夹之间移动文件,则不会更新命名空间。

这是混乱项目的常见来源。不久之后,您可以完成一个项目,其中您有整齐组织的文件夹和文件,但不反映名称空间。因此,例如,如果您在文件夹 MyFolder 中有类 MyClass,请确保该类的命名空间类似于 MyApp.MyFolder 而不是一些旧垃圾。

因此,如果您不将类打包到一个文件中并观察类名称空间是否反映文件夹层次结构 - 您正在使您的项目非常易于阅读和导航。

于 2008-12-09T11:26:32.003 回答
1

100% 同意 Jon Skeet。

为了在文件夹级别获得更多概览,我们正在创建打破命名空间结构的文件夹,方法是在它们前面加上下划线。

于 2008-12-09T11:42:43.763 回答