Vnořené typy (Průvodce programováním v C#)
Typ definovaný v rámci třídy nebo struktury se nazývá vnořený typ.Příklad:
class Container
{
class Nested
{
Nested() { }
}
}
Bez ohledu na to, zda je vnější typ třída nebo struktura, vnořené typy jsou přednastaveny na soukromé, ale mohou být nastaveny na veřejné, chráněné vnitřní, chráněné, vnitřní nebo soukromé.V předchozím příkladu je Nested nedostupné pro externí typy, ale lze je publikovat takto:
class Container
{
public class Nested
{
Nested() { }
}
}
Vnořený nebo vnitřní typ může získat přístup k obsahujícímu nebo vnějšímu typu.Pro přístup k nadřazenému typu ho předejte jako konstruktor do vnořeného typu.Příklad:
public class Container
{
public class Nested
{
private Container parent;
public Nested()
{
}
public Nested(Container parent)
{
this.parent = parent;
}
}
}
Vnořený typ má přístup ke všem členům, kteří mají přístup k jeho nadřazeného typu.Má přístup k soukromým a chráněným členům nadřazeného typu, včetně všech zděděných chráněných členů.
V předchozí prohlášení, úplný název třídy Nested je Container.Nested.Toto je název používaný k vytvoření nové instance vnořené třídy takto:
Container.Nested nest = new Container.Nested();
Viz také
Referenční dokumentace
Třídy a struktury (Průvodce programováním v C#)
Modifikátory přístupu (Průvodce programováním v C#)
Konstruktory (Průvodce programováním v C#)