A nested type has access to all of the members that are accessible to its containing type, including members of the containing type that have private and protected declared accessibility. [Example: The example shows a class C that contains a nested class Nested. Within Nested, themethod G calls the static method F defined in C, and F has private declared accessibility. end example]
A nested type also may access protected members defined in a base type of its containing type. [Example: In the example the nested class Derived.Nested accesses the protected method F defined in Derived's base class, Base, by calling through an instance of Derived. end example]