2017-06-07 68 views
-1

我試圖組織一個庫。我的問題是它很快會變得非常大。管理命名空間庫(C#)

這是我到目前爲止有:

namespace MyLibrary { 

    namespace Math { 

     namespace Geometry { 

      public class BezierCurve { 

       //... 
      };  
     } 

     namespace Combinatorics { 

     } 
    } 

    namespace Collections { 

    } 

    //... 
} 

它不是多行代碼了,但因爲貝茲曲線單獨約爲200行,上面的文檔中創建的所有類的不會是要走的路。

是否有可能以某種方式在另一個文檔中指定BezierCurve的內容並在命名空間Geometry中包含/引用它?

+0

聲明您可以將每類在一個文件中。在你的例子中,你應該。爲什麼不使用命名空間MyLibrary,Math.Geometry? –

回答

0

多個文件可以宣告類在同一個命名空間中。沒有要求在單個文件中完全定義命名空間。 你應該爲每個類有一個文件。 例如您的貝茲曲線通常將是: 在MyLibrary /數學/幾何/ BezierCurve.cs 和內

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

建議每個文件都有一種類型(除了一些例外)。因此,你將有一個單一命名空間沒有這一切的嵌套結構:

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

如果你想引用BezierCurve在另一個文件中,只需要添加一個using指令與適當的命名空間:

using MyLibrary.Math.Geometry; 

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