Zagnieżdżone typy (Podręcznik programowania C#)
Typ zdefiniowany w ramach klasy lub struct nosi nazwę typu zagnieżdżonego.Na przykład:
class Container
{
class Nested
{
Nested() { }
}
}
Niezależnie od tego, czy typu zewnętrznego jest klasą lub struct, zagnieżdżone typy domyślne, aby prywatnych, ale mogą być dokonywane publicznych, chronione wewnętrznego, chronione, wewnętrzny, lub prywatnych.W poprzednim przykładzie Nested jest niedostępna dla typów zewnętrznych, ale mogą być ujawniane następująco:
class Container
{
public class Nested
{
Nested() { }
}
}
Zagnieżdżone lub wewnętrzny typ można uzyskać dostęp do typu zawierające lub zewnętrznym.Do dostępu typu zawierające, przekazać je jako konstruktor do typu zagnieżdżonego.Na przykład:
public class Container
{
public class Nested
{
private Container parent;
public Nested()
{
}
public Nested(Container parent)
{
this.parent = parent;
}
}
}
Zagnieżdżonych typów mogą uzyskiwać dostęp do prywatnych i chronionych członków typu zawierające, w tym wszelkie elementy dziedziczone prywatnym ani chronionym.
W poprzedniej deklaracji, pełną nazwę klasy Nested jest Container.Nested.Jest to nazwa używana w celu utworzenia nowej instancji klasy zagnieżdżone w następujący sposób:
Container.Nested nest = new Container.Nested();
Zobacz też
Informacje
Klasy i strukturach (Podręcznik programowania C#)
Modyfikatory dostępu (Podręcznik programowania C#)
Konstruktory (Podręcznik programowania C#)