子类对父类上定义的属性可见

本文关键字:属性 定义 父类 子类 | 更新日期: 2023-09-27 18:03:59

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

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

子类对父类上定义的属性可见

回答您的问题:

这怎么可能?

这都与类的可见性有关。您的Child类在同一个程序集中,因此SomeAttribute仍然可以访问它(无论它是内部/私有等)。

是否会破坏属性的实现?

没有

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

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

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