Share via


Beágyazott típusok (C# programozási útmutató)

Az osztályon, szerkezeten vagy interfészen belül definiált típusokat beágyazott típusnak nevezzük. Példa:

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

Függetlenül attól, hogy a külső típus egy osztály, interfész vagy struktúra, a beágyazott típusok alapértelmezés szerint privátak, és csak a bennük található típusból érhetők el. Az előző példában az Nested osztály nem érhető el külső típusok számára.

A beágyazott típus akadálymentességének meghatározásához megadhat egy hozzáférési módosítót is, az alábbiak szerint:

Az alábbi példa nyilvánossá teszi az osztályt Nested :

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

A beágyazott vagy belső típus hozzáférhet a benne lévő vagy külső típushoz. A kódoló típus eléréséhez adja át argumentumként a beágyazott típus konstruktorának. Példa:

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

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

A beágyazott típus hozzáféréssel rendelkezik az összes olyan taghoz, amely elérhető a benne található típushoz. Hozzáférhet az adott típusú magán- és védett tagokhoz, beleértve az örökölt védett tagokat is.

Az előző deklarációban az osztály Nested teljes neve .Container.Nested Ez a név a beágyazott osztály új példányának létrehozásához használatos, az alábbiak szerint:

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

Lásd még