Types imbriqués (Guide de programmation C#)

Mise à jour : novembre 2007

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

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

Indépendamment du fait que les types externes sont une classe ou un struct, les types imbriqués sont privés par défaut, mais 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;
        }
    }
}

Les types imbriqués peuvent accéder à des membres privés et protégés du type conteneur, y compris à tous les membres protégés ou privés hérités.

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

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

Voir aussi

Concepts

Guide de programmation C#

Référence

Classes et structs (Guide de programmation C#)

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

Constructeurs (Guide de programmation C#)