Delen via


Geneste typen (C#-programmeerhandleiding)

Een type dat in een klasse, struct of interface is gedefinieerd, wordt een genest type genoemd. Bijvoorbeeld

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

Ongeacht of het buitenste type een klasse, interface of struct is, worden geneste typen standaard ingesteld op privé; ze zijn alleen toegankelijk vanuit hun type. In het vorige voorbeeld is de Nested-klasse niet toegankelijk voor externe typen.

U kunt ook een toegangsaanpassing opgeven om de toegankelijkheid van een genest type te definiëren, als volgt:

In het volgende voorbeeld wordt de Nested klasse openbaar:

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

Het geneste of binnenste type heeft toegang tot het omvatten, of buitenste, type. Als u toegang wilt krijgen tot het omvattende type, geeft u het als argument door aan de constructor van het geneste type. Voorbeeld:

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

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

Een genest type heeft toegang tot alle leden die toegankelijk zijn voor het bijbehorende type. Het kan toegang krijgen tot privé- en beschermde leden van het omvattende type, inclusief alle geërfde beschermde leden.

In de vorige verklaring is de volledige naam van klasse NestedContainer.Nested. Dit is de naam die wordt gebruikt om een nieuw exemplaar van de geneste klasse te maken, als volgt:

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

Zie ook