Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
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 osztály beágyazott típusai lehetnek nyilvánosak, védettek, belsők, védettek belső, privát vagy privát védelem alatt.
Ha azonban egy lezárt osztályban definiál egy
protected,protected internalvagyprivate protectedbeágyazott osztályt, az CS0628: "új védett tag deklarálva a lezárt osztályban" figyelmeztetést generálja.Vegye figyelembe azt is, hogy a beágyazott típus külső láthatóvá tétele sérti a CA1034 kódminőségi szabályt,"A beágyazott típusok nem lehetnek láthatók".
A strukturált szerkezetek beágyazott típusai lehetnek nyilvánosak, belsők vagy privátak.
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();