是否可以创建嵌套命名空间? (可以这么说)

时间:2014-04-23 14:21:04

标签: .net vb.net oop namespaces

我有一个包含许多(非共享)方法的类。我想将它们组织成子类别,例如,而不是调用

(my class instance).BuildingComponentDoorCreate

我可以打电话

(my class instance).Building.Component.Door.Create

因为除了门和门特定的东西之外还有其他组件除了创建之外还有其他方法。

我正在将这个类构建为一种框架,现在它感觉非常拥挤。此外,我宁愿不为“建筑”和建筑物内部的组件创建单独的类,因为它只会增加不必要的复杂性。

2 个答案:

答案 0 :(得分:1)

鉴于你问题的确切措辞,答案是“不”。

如果变量x是一个类的实例,并且您想在代码中编写x.<something>,则<something>必须是属性或公共字段。

如果您可以允许括号,那么您也可以使用方法,例如x.Something()。这可以是在类本身上声明的方法,也可以是来自另一个static类的扩展方法。

在任何情况下,您的类实例后面的.<something>都不能成为命名空间。

你说你的班级很拥挤;这表明您考虑创建更多类以更好地分离您的功能。这也是您能够以您描述的方式组织它们的唯一方式。

答案 1 :(得分:0)

使用内部类,它是现有类中的类。

我发现除非你已经以这种方式组织了你的基础设施,并且分离成组件的一个有用的需要它可以是更多的工作,那么如果你已经拥有一个主类中的所有内容是值得的。

深入4级也是一个非常大的项目分离,但子类化将不可避免地使您的代码更具可读性和组织性。所以,如果你打算这样做,那真的是你的判断。