(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

Geschachtelte Typen (C#-Programmierhandbuch)

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


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


Unabhängig davon, ob die äußeren Typen Klassen oder Strukturen sind, sind geschachtelte Typen standardmäßig auf private festgelegt, können jedoch auch auf public, protected internal, protected, internal oder private festgelegt werden. 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 äußeren (enthaltenden) Typ zuzugreifen, übergeben Sie ihn dem geschachtelten Typ als Konstruktor. Beispiel:


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

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


Ein geschachtelter Typ hat Zugriff auf alle Member, die für ihren äußeren (enthaltenden) Typ zugreifbar sind. Er kann auf die Member des äußeren (enthaltenden) Typs zugreifen, die "private" oder "protected" sind, ebenso auf alle geerbten Member, die "private" oder "protected" sind.

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


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


Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Vielen Dank für Ihr Feedback.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft. Alle Rechte vorbehalten.