在父类中定义的属性可以看到子类?

时间:2013-03-15 11:37:55

标签: c# .net inheritance attributes

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

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

1 个答案:

答案 0 :(得分:2)

回答你的问题:

  

这怎么可能?

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

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

没有

  

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

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

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