考虑以下代码示例:
class Outer
{
public class Nested { }
}
class SubOuter : Outer { }
class Test
{
Test()
{
Outer.Nested x; // Makes sense.
SubOuter.Nested y; // Compiles, but why?
}
}
似乎嵌套类被子类“继承”了。这有什么意义?我能用这个特性做些什么,否则我不能(或不能轻易地)做到?
Outer.Nested
和SubOuter.Nested
不是完全等价的吗?澄清:当然它可以编译,因为C#规范是这样规定的。我明白这一点。我问的是,为什么C#要设计成这样,因为它似乎没有为语言增加什么东西。如果您有相反的例子,即使用此功能可以更轻松/更短/更好的代码,请在答案中分享,我会很高兴接受它。
Nested
是公共的,所以SubOuter
类可以在基类中看到它。 - Hakan FıstıkOuter.Nested
和SubOuter.Nested
是等价的,在声明方式以外它们没有任何区别。 - Hakan Fıstık