管理命名空间库(C#)

时间:2017-06-07 00:03:29

标签: c# namespaces

我正在尝试组织一个图书馆。我的问题是它会很快变得非常大。

这是我到目前为止所做的:

namespace MyLibrary {

    namespace Math {

        namespace Geometry {

            public class BezierCurve {

                //...
            };      
        }

        namespace Combinatorics {

        }
    }

    namespace Collections {

    }

    //...
}

现在它的代码行不多,但由于BezierCurve单独约200行,因此创建上述文档中的所有类是不可能的。

是否有可能以某种方式在另一个文档中指定BezierCurve的内容并在命名空间Geometry中包含/引用它?

2 个答案:

答案 0 :(得分:0)

建议每个文件使用一种类型(嗯,有一些例外)。因此,您将拥有一个没有所有嵌套结构的命名空间:

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

如果你想在另一个文件中引用BezierCurve,只需添加一个带有适当命名空间的using指令:

using MyLibrary.Math.Geometry;

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

答案 1 :(得分:0)

多个文件可以在同一名称空间中声明类。不需要在单个文件中完全定义名称空间。 你应该每个类有一个文件。 例如你的BezierCurve通常会在: 在MyLibrary /数学/几何/ BezierCurve.cs 并在

内宣布
namespace MyLibrary.Math.Geometry
{
    public class BezierCurve 
    {
    }
}