想知道在C#中何时使用嵌套类是正确的? 我们是否有不合理使用它的情况,因此不正确?
如果您可以为这两种情况提供示例 谢谢
想知道在C#中何时使用嵌套类是正确的? 我们是否有不合理使用它的情况,因此不正确?
如果您可以为这两种情况提供示例 谢谢
当您需要封装主要在父类中使用的数据格式时,使用嵌套类非常方便。这通常是因为数据的目的或格式对于父类来说非常特定,不适合在解决方案中被广泛使用。
C# 没有一种方法可以编写一个 using
指令来针对一个类,以便可以访问该类的静态成员而不必将类名作为限定符(与 Java 的 import static
相比,后者允许这样做)。
因此,对于您的类的用户来说,如果您将任何公共类作为命名空间的直接成员而不是嵌套在其他公共类中,则会更加方便。这样他们就可以使用 using
指令将它们拉入全局命名空间。
对于私有类,可以随意放置,最好将它们放在使用它们的地方附近,以增强代码的可读性。
我不确定我的世界是否有足够的空间来容纳嵌套类。它只会让设计变得模糊。如果你需要隐藏类内部的信息,为什么不只是将其存储在成员变量中呢?
此外,如果没有能力在类的位置注入存根,测试将变得更加麻烦。
嵌套类的使用取决于以下情况:
1)将代码组织成现实世界中两个对象之间存在特殊关系的情况。
2)将一个类隐藏在另一个类中,以便您不希望从创建它的类之外使用内部类。
假设您有两个名为A和B的类,类B依赖于类A,没有类A,您无法在该场景中使用类B,则可以使用嵌套类。
据我所知
DataRow类是DataTable的嵌套类,即除非声明DataTable类的对象,否则无法创建DataRow类。
我发现有两个主要原因:
个性化类名而不破坏其意义。
例如:Vercas.ExplorerView
,其中我个性化了类名,而不会破坏其含义。
私有类。
例如:Vercas.ExplorerView.Item
仅在 Vercas.ExplorerView
内部使用。