Strutture in C#
Le strutture (o struct
in inglese) sono un tipo di dati composito che permette di creare un insieme di campi (variabili) sotto un singolo nome. Contrariamente alle classi, le strutture sono tipi di valore e vengono immagazzinate nello stack anziché nell’heap. In questa sezione, esploreremo le strutture in dettaglio, impareremo come dichiararle, inizializzarle, accedere ai loro campi e vedremo quando sono più adatte rispetto alle classi.
Le strutture vengono dichiarate utilizzando la parola chiave struct
. Definiamo i campi della struttura all’interno delle parentesi graffe {}
.
Sintassi
struct NomeStruttura
{
// Campi della struttura
Tipo Campo1;
Tipo Campo2;
// ...
}
struct Punto
{
public int X;
public int Y;
}
Inizializzazione di una Struttura
È possibile inizializzare una struttura utilizzando il costruttore di default. In alternativa, è possibile specificare valori iniziali per i campi durante la dichiarazione.
Punto puntoDefault = new Punto(); // Inizializzazione con valori di default
Punto puntoPersonalizzato = new Punto { X = 10, Y = 20 }; // Inizializzazione con valori personalizzati
Accesso ai Campi
I campi di una struttura vengono accessi utilizzando l’operatore .
.
int coordinataX = puntoPersonalizzato.X;
int coordinataY = puntoPersonalizzato.Y;
Utilizzo delle Strutture
Le strutture sono spesso utilizzate per rappresentare tipi di dati semplici, come coordinate, colori o date, che possono essere considerati come un unico valore. Sono adatte quando si desidera evitare l’allocazione nell’heap o quando si lavora con oggetti leggeri.
struct Colore
{
public byte Rosso;
public byte Verde;
public byte Blu;
}
Colore colorePuro = new Colore { Rosso = 255, Verde = 0, Blu = 0 };
Metodi di Struttura
Le strutture possono includere metodi che lavorano su di esse. Tuttavia, questi metodi non possono modificare lo stato della struttura stessa.
struct Punto
{
public int X;
public int Y;
public double CalcolaDistanza()
{
return Math.Sqrt(X * X + Y * Y);
}
}
Punto punto = new Punto { X = 3, Y = 4 };
double distanza = punto.CalcolaDistanza();
Conclusione
Le strutture sono utili per rappresentare dati semplici come tipi di valore. Sono dichiarate utilizzando la parola chiave struct
e consentono di raggruppare campi sotto un singolo nome. Le strutture sono tipi di valore e vengono immagazzinate nello stack. Sono adatte quando si lavora con oggetti leggeri o si desidera evitare l’allocazione nell’heap. Utilizzando le strutture in modo appropriato, è possibile creare un codice più pulito ed efficiente.