2017-06-07 7 views
-1

ライブラリを整理しようとしています。私の問題は、それがすぐに非常に大きくなるということです。名前空間ライブラリを管理する(C#)

これは私がこれまで持っているものです。

namespace MyLibrary { 

    namespace Math { 

     namespace Geometry { 

      public class BezierCurve { 

       //... 
      };  
     } 

     namespace Combinatorics { 

     } 
    } 

    namespace Collections { 

    } 

    //... 
} 

そのない今のコードの行数が、一人でベジェ曲線は約200行であることから、上記文書でのすべてのクラスを作成することになるだろうされていません行く道。

BezierCurveのコンテンツを別のドキュメントで何とか指定し、名前空間ジオメトリに含める/参照することはできますか?

+0

内で宣言すること。あなたの例では、あなたはすべきです。なぜMyLibrary、Math.Geometryという名前空間を使用しないのですか? –

答えて

0

複数のファイルをこのようにあなたは、このすべてのネストされた構造を持たない単一の名前空間を持つことになりますクラスは同じ名前空間にあります。単一のファイル内で名前空間を完全に定義する必要はありません。 クラスごとにファイルが必要です。例: あなたのベジェ曲線は、一般的に次のようになります。 てMyLibrary /数学/幾何学/ BezierCurve.cs とあなたが単一のファイルにすべてのクラスを配置することができます

namespace MyLibrary.Math.Geometry 
{ 
    public class BezierCurve 
    { 
    } 
} 
0

ファイルごとに1つのタイプを持つことをお勧めします(例外はありますが)。あなたが別のファイルにBezierCurveを参照したい場合は、単に適切な名前空間でusingディレクティブを追加、

namespace MyLibrary.Math.Geometry 
{ 
    public class BezierCurve 
    { 
     // ... 
    } 
} 

:宣言することができます

using MyLibrary.Math.Geometry; 

namespace MyLibrary.Math.Combinatorics 
{ 
    public class SomeClassFromCombinatoricsWhichUsesBezierCurve 
    { 
     // ... 
    } 
}