1
[SomeAttribute(typeof(Child))]
public sealed class Parent
{
    public sealed class Child
    {
    }
}

这怎么可能?它会破坏属性实现中的某些内容吗?我只是嵌套 Child 因为我坚持每个文件一个类的规则。如果 Child 是在外部定义的,我就不必担心用无限循环破坏属性。

4

1 回答 1

2

要回答您的问题:

这怎么可能?

这一切都与班级的知名度有关。您的Child课程在同一个程序集中,因此SomeAttribute仍然可以访问它(无论它是内部/私有等)。

它会破坏属性实现中的某些内容吗?

我只是嵌套Child,因为我坚持每个文件一个类的规则。

从技术上讲,您不会坚持每个文件 1 个类的规则,因为现在有 2 个类(不管它是否嵌套)。通常你会嵌套一个类,如果它是外部类的实现细节,我收集到你的情况不是。

如果Child是一个公共类,那么把它放在它自己的单元中,你在这里嵌套的例子不会给你带来任何好处,也没有任何意义。如果Child该类与该类紧密耦合Parent并纯粹在其内部使用,则应将其标记为internalprivate

于 2013-03-15T11:41:57.363 回答