5

さまざまな理由により、ソース ファイルを 1 つのプロジェクトで 1 つのソリューションに再編成しています。

これにより、複数のファイルに分割された多くの名前空間が残ります。これまでのところ、私はこの規則を使用しています。名前空間が与えられたCompany.Project.A場合、ファイルには などの名前が付けられA.f1.cs、名前空間は 、 などに分割されA.f2.csます。Company.Project.BB.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

したがって、解決策はここにあります。フォルダです。しかし、それは時々トリッキーです。まず第一に、クラスごとに 1 つのファイルを作成することをお勧めします。いくつかのクラスを 1 つのファイルにまとめると、時間の経過とともにそれらを見つけるのに問題が生じます。

フォルダについての 2 番目のこと - フォルダをクリックして、たとえば [追加] -> [新しいアイテム] を選択すると、このアイテムは選択したフォルダに配置されます。でも気をつけて!フォルダー間でファイルを移動する場合、名前空間は更新されません。

これは、めちゃくちゃなプロジェクトの一般的な原因です。しばらくすると、きちんと整理されたフォルダーとファイルがあるが、名前空間が反映されていないプロジェクトになる可能性があります。たとえば、フォルダー MyFolder にクラス MyClass がある場合、このクラスの名前空間は MyApp.MyFolder のようなものであり、古いゴミではありません。

したがって、クラスを 1 つのファイルにパックせず、クラスの名前空間がフォルダー階層を反映しているかどうかを確認する場合は、プロジェクトを非常に読みやすくナビゲートしやすくするための良い道を進んでいます。

于 2008-12-09T11:26:32.003 に答える
1

ジョンスキートに100%同意します。

フォルダレベルでより多くの概要を把握するために、アンダースコアを前に付けて名前空間構造を壊すフォルダを作成しています。

于 2008-12-09T11:42:43.763 に答える