Geschachtelte Typen (C#-Programmierhandbuch)

Ein innerhalb einer Klasse oder Struktur definierter Typ wird als geschachtelter Typ bezeichnet.Beispiele:

class Container
{
    class Nested
    {
        Nested() { }
    }
}

Unabhängig davon, ob der äußere Typ eine Klasse oder eine Struktur ist, führen geschachtelte Typen für Private, können aber gemacht werden Öffentlich, geschütztes internes, geschützt, internoder Private.Im vorherigen Beispiel ist Nested für externe Typen nicht zugreifbar, kann aber wie folgt öffentlich gemacht werden:

class Container
{
    public class Nested
    {
        Nested() { }
    }
}

Der geschachtelte oder innere Typ kann auf den enthaltenden oder äußeren Typ zugreifen.Um auf den enthaltenden Typ zuzugreifen, übergeben Sie ihn dem geschachtelten Typ als Konstruktor.Beispiele:

public class Container
{
    public class Nested
    {
        private Container parent;

        public Nested()
        {
        }
        public Nested(Container parent)
        {
            this.parent = parent;
        }
    }
}

Geschachtelte Typen können auf die Member des enthaltenden Typs zugreifen, die private oder protected sind. Dies beinhaltet auch alle geerbten Member, die private oder protected sind.

In der vorherigen Deklaration lautet der vollständige Name der Nested-Klasse Container.Nested.Mit diesem Namen wird wie folgt eine neue Instanz der geschachtelten Klasse erstellt:

Container.Nested nest = new Container.Nested();

Siehe auch

Referenz

Klassen und Strukturen (C#-Programmierhandbuch)

Zugriffsmodifizierer (C#-Programmierhandbuch)

Konstruktoren (C#-Programmierhandbuch)

Konzepte

C#-Programmierhandbuch