4

想知道什么时候在 C# 中使用嵌套类是正确的?我们是否有过使用它是不合理的,因此是不正确的事件?

如果你能给出这两种情况的例子谢谢

4

6 回答 6

8

我发现当您需要封装主要将在父类中使用的数据格式时,使用嵌套类很方便。这通常是因为数据的目的或格式是为父类定制的,因此它并不适合在您的解决方案中更广泛地使用。

于 2011-03-23T09:13:45.763 回答
2

这是嵌套类的简单基本介绍。

嵌套类

于 2011-03-23T09:22:05.443 回答
1

C# 没有办法编写using针对类的指令,因此无需将类名写入限定符即可访问类的静态成员(与 Java 相比import static,后者确实允许这样做)。

因此,对于您的类的用户,如果您将任何公共类作为命名空间的直接成员,而不是嵌套在其他公共类中,会更方便一些。这样他们就可以使用using指令将它们拉入全局命名空间。

对于私有类,发疯,最好把它们放在靠近它们用来增强代码可读性的地方。

于 2011-03-23T09:27:11.850 回答
0

我不确定我的世界是否有嵌套类的空间。它只是模糊了我的设计。如果您需要在类中隐藏信息,为什么不将其存储在成员变量中呢?

此外,如果无法在类的位置注入存根,测试会变得更加繁琐。

于 2011-03-23T09:34:22.160 回答
0

嵌套类的用户取决于下面的场景。

1)将代码组织到两个对象之间存在特殊关系的现实世界中。2)在另一个类中隐藏一个类,以便您不希望内部类从创建它的类的外部使用。

假设您有 2 个名为 A 和 B 的类,B 类依赖于没有 A 类的 A 类,您不能使用 B 类 @ 在那种情况下您可以使用嵌套类

据我所知

DataRow 类是 DataTable 的嵌套类,即您不能创建 DataRow 类,直到您声明 DataTable 类的对象

于 2011-03-23T09:34:44.543 回答
0

我发现两个主要原因:

  1. Personalize a class' name without ruining it.
    Example: Vercas.ExplorerView, where I personalize the name of my class without ruining the meaning.

  2. Private classes.
    Example: Vercas.ExplorerView.Item is used only inside Vercas.ExplorerView.

于 2011-03-23T10:00:09.393 回答