考慮下面的代碼例如:爲什麼嵌套類「繼承」?
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'類可以在基類中看到它。 –
問題在哪裏,爲什麼你不想編譯它。 –
'Outer.Nested'和'SubOuter.Nested'是等價的,除了聲明方式外,它們沒有區別。 –