Partager via


Types imbriqués (guide de programmation C#)

Un type défini dans une classe ou un struct est appelé type imbriqué. Par exemple :

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

Que le type externe soit une classe ou un struct, les types imbriqués sont privés par défaut, mais ils peuvent être rendus publics, protégés internes, protégés, internes ou privés. Dans l'exemple précédent, Nested est inaccessible aux types externes, mais peut être rendu public comme suit :

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

Le type imbriqué, ou interne, peut accéder au type conteneur, ou externe. Pour accéder au type conteneur, passez-le comme constructeur au type imbriqué. Par exemple :

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

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

Un type imbriqué a accès à tous les membres qui sont accessibles à son type conteneur. Il peut accéder aux membres privés et protégés du type conteneur, y compris à tous les membres protégés hérités.

Dans la déclaration précédente, le nom complet de classe Nested est Container.Nested. Il s'agit du nom utilisé pour créer une instance de la classe imbriquée, comme suit :

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

Voir aussi

Référence

Classes et structs (Guide de programmation C#)

Modificateurs d'accès (Guide de programmation C#)

Constructeurs (guide de programmation C#)

Concepts

Guide de programmation C#