Condividi tramite


Tipi annidati (Guida per programmatori C#)

Per tipo annidato si intende un tipo definito all'interno di una classe o di una struttura.Di seguito è riportato un esempio:

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

Indipendentemente dal tipo esterno è una classe o uno struct, l'impostazione predefinita per i tipi annidati a privato, ma può essere eseguita pubblico, internal protetto, protetto, interno, o privato.Nell'esempio precedente Nested non è accessibile a tipi esterni, ma può essere reso public nel seguente modo:

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

Il tipo interno o annidato può accedere al tipo esterno o che lo contiene.Per accedere al tipo che lo contiene, passarlo come costruttore al tipo annidato.Di seguito è riportato un esempio:

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

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

I tipi annidati possono accedere a membri privati e protetti del tipo che li contengono, inclusi tutti i membri privati o protetti ereditati.

Nella dichiarazione precedente il nome completo della classe Nested è Container.Nested.Questo nome viene utilizzato per creare una nuova istanza della classe annidata, come illustrato di seguito:

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

Vedere anche

Riferimenti

Classi e struct (Guida per programmatori C#)

Modificatori di accesso (Guida per programmatori C#)

Costruttori (Guida per programmatori C#)

Concetti

Guida per programmatori C#