由于种种原因,我正在将我的源文件重组为一个项目的单个解决方案:
这给我留下了许多名称空间,这些名称空间被分割为多个文件。到目前为止,我正在使用此约定:给定命名空间Company.Project.A
,文件名为A.f1.cs
,A.f2.cs
等等,Company.Project.B
命名空间在{{{}}分割1}},B.f1.cs
等
鉴于单个项目限制,有没有更好的方法来组织多个名称空间中的多个文件?
答案 0 :(得分:11)
是 - 使用文件夹。
如果在项目中创建文件夹,该文件夹中的新类将自动使用文件夹名称作为命名空间的基础。
例如,如果您的项目的默认名称空间为“Company.Project”,而文件夹“Foo”包含“Bar.cs”,您最终会得到:
using System; // Etc
namespace Company.Project.Foo
{
class Bar
{
}
}
答案 1 :(得分:2)
所以解决方案就在这里。这是文件夹。但它有时候很棘手。首先,每个类有一个文件是个好主意。如果要将多个类打包到一个文件中 - 那么随着时间的推移你会遇到问题。
关于文件夹的第二件事 - 如果你点击一个文件夹并选择例如“添加 - >新项目”,这个项目将被放入选定的文件夹。但要小心!如果要在文件夹之间移动文件,则不会更新名称空间。
这是混乱项目的常见来源。过了一段时间,你可以得到一个项目,你有一个整洁的有组织的文件夹和文件,但没有反映名称空间。例如,如果您在MyFolder文件夹中有MyClass类,请确保此类的命名空间类似于MyApp.MyFolder而不是旧垃圾。
因此,如果您不打算将类打包到一个文件中并观察类名称空间是否反映文件夹层次结构 - 那么您就可以轻松地使项目易于阅读和导航。
答案 2 :(得分:1)
100%同意Jon Skeet。
为了在文件夹级别获得更多概述,我们通过在下面添加下划线来创建打破命名空间结构的文件夹。