2017-06-07 38 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 
    { 
     // ... 
    } 
}