Tipi annidati (Guida per programmatori C#)
Per tipo annidato si intende un tipo definito all'interno di una classe o di una struttura. Esempio:
class Container
{
class Nested
{
Nested() { }
}
}
Sia che i tipi esterni siano una classe o una struttura, per impostazione predefinita i tipi annidati sono private, ma possono essere convertiti in public, protected internal, protected, internal o private. 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. 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#)