Megosztás:


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

A beágyazott típus egy osztályon, szerkezeten vagy felületen belül definiált típus. Például:

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

Függetlenül attól, hogy a külső típus egy osztály, interfész vagy szerkezet, a beágyazott típusok alapértelmezés szerint privátak. Csak a bennük található típusból érheti el őket. Az előző példában a külső típusok nem férnek hozzá az Nested osztályhoz.

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 a Nested osztályt:

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 tartalmazó típus eléréséhez adja át argumentumként a beágyazott típus konstruktorának. Például:

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