Struct (Guida per programmatori C#)
Per la definizione delle strutture viene utilizzata la parola chiave struct, ad esempio:
public struct PostalAddress
{
// Fields, properties, methods and events go here...
}
Le strutture condividono la maggior parte della sintassi delle classi, sebbene le prime siano più limitate rispetto alle seconde:
All'interno di una dichiarazione di struttura, i campi non possono essere inizializzati se non sono stati dichiarati come const o static.
Uno struct non può dichiarare un distruttore o un costruttore predefinito, ovvero un costruttore senza parametri.
Le strutture vengono copiate su assegnazione. Quando una struttura viene assegnata a una nuova variabile, vengono copiati tutti i dati e qualsiasi modifica alla nuova copia non causa la modifica dei dati nella copia originale. Questo è importante da ricordare quando si utilizzano raccolte con tipi di valore come Dictionary<string, myStruct>.
Le strutture sono tipi di valore, mentre le classi sono tipi di riferimento.
A differenza delle classi, è possibile creare istanze di oggetti struttura senza utilizzare un operatore new.
Le strutture possono dichiarare costruttori con parametri.
Una struttura non può ereditare da un'altra struct o da un'altra classe né può costituire la base di una classe. Tutte le strutture ereditano direttamente da System.ValueType, che eredita da System.Object.
Una struttura può implementare interfacce.
È possibile assegnare un valore null a una struttura che può essere utilizzata come tipo nullable.
Sezioni correlate
Per ulteriori informazioni:
Procedura: implementare conversioni tra struct definite dall'utente (Guida per programmatori C#)
Ulteriori informazioni sulle variabili in Visual c# 2010 iniziale
Vedere anche
Riferimenti
Classi e struct (Guida per programmatori C#)
Classi (Guida per programmatori C#)