Да, это возможно, и это означает, что точно так же, как обычно:
public class Container
{
private class Foo
{
protected int field;
private class FurtherNested
{
// Valid: a nested class has access to all the members
// of its containing class
void CheckAccess(Foo foo)
{
int x = foo.field;
}
}
}
private class Bar : Foo
{
void CheckAccess(Foo foo)
{
// Invalid - access to a protected member
// must be through a reference of the accessing
// type (or one derived from it). See
// https://msdn.microsoft.com/en-us/library/bcd5672a.aspx
int x = foo.field;
}
void CheckAccess(Bar bar)
{
// Valid
int x = bar.field;
}
}
private class Baz
{
void CheckAccess(Foo foo)
{
// Invalid: this code isn't even in a class derived
// from Foo
int x = foo.field;
}
}
}
Тем не менее, это относительно необычно иметь любой тип, производный от частный (и, следовательно, вложенный) тип.
Класс не может быть закрытым, если только он не является внутренним классом. –
Почему бы вам не попробовать? Вы уверены, что знаете, что означает 'protected' и' private'? Вы что-нибудь читали в своей документации? –
Из [документации] (https://msdn.microsoft.com/en-us/library/bcd5672a.aspx): «Защищенный член доступен в пределах своего класса и экземпляров производного класса» –