Strutture in C#

Le strutture (o struct in inglese) sono un tipo di dati composto generalmente utilizzato per incapsulare piccoli gruppi di variabili correlate, ad esempio le coordinate di un rettangolo o il posizionamento di un punto nello spazio.

Si tratta quindi di un tipo di dato ideale per piccoli oggetti, anche se talvolta uno stesso concetto potrebbe essere implementato come struttura o classe senza rilevanti differenze fra le due possibilità.

Sintassi

La sintassi per dichiarare una struttura in C# è molto semplice. Ecco un esempio di come dichiararla:

struct Punto 
{ 
    public int X; 
    public int Y; 
}

Qui abbiamo dichiarato una struttura chiamata Punto, che contiene due campi pubblici: X e Y, entrambi di tipo intero.

Inizializzazione di una struttura

Per creare un’istanza di una struttura, puoi utilizzare il costruttore predefinito o definirne uno tu. Ecco come puoi inizializzare una struttura:

Punto p = new Punto();
p.X = 10;
p.Y = 20;

Oppure, puoi utilizzare un costruttore personalizzato per inizializzarla:

struct Punto 
{ 
    public int X; 
    public int Y; 
    
    public Punto(int x, int y) 
    { 
        X = x; 
        Y = y; 
    } 
} 
        
Punto p = new Punto(10, 20); 

Accedere ai campi

Una volta creata l’istanza della struttura, puoi accedere ai suoi campi come faresti con una classe. Nell’esempio precedente, abbiamo acceduto a X e Y direttamente dall’oggetto Punto.

Console.WriteLine($"X: {p.X}, Y: {p.Y}");

Questo stampa i valori dei campi X e Y.

Utilizzo delle strutture

Le strutture sono particolarmente utili quando si lavora con piccoli gruppi di dati. Ad esempio, in un’applicazione di grafica, potresti voler rappresentare coordinate o punti nello spazio 2D o 3D.

Un altro utilizzo comune è in scenari dove il valore dell’oggetto è più importante del suo riferimento. Poiché le strutture sono tipi di valore, vengono memorizzate direttamente nella stack, a differenza delle classi che sono tipi di riferimento e vengono memorizzate nell’heap.

Metodi di una struttura

Le strutture in C# possono anche contenere metodi. Questo significa che puoi aggiungere funzioni utili all’interno della tua struttura. Ecco un esempio:

struct Punto
{
    public int X; 
    public int Y; 
    
    public Punto(int x, int y)
    {
        X = x;
        Y = y;
    }

    public void Sposta(int deltaX, int deltaY)
    {
        X += deltaX;
        Y += deltaY;
    }
}

Punto p = new Punto(10, 20);
p.Sposta(5, 10);

In questo esempio, abbiamo aggiunto un metodo Sposta che modifica i valori di X e Y.

Conclusione

Le strutture in C# sono uno strumento potente e versatile, utili per rappresentare gruppi di dati semplici. Anche se possono sembrare simili alle classi, è importante ricordare che sono tipi di valore e vengono utilizzate in contesti dove è più efficiente lavorare con dati memorizzati direttamente nella stack. Sperimenta con le strutture e scoprirai quanto possono essere utili nella tua programmazione quotidiana!

Corsi correlati

In Arrivo

Design Pattern per videogiochi

I Design Pattern sono soluzioni a problemi comuni che si incontrano nello sviluppo del software. Nel contesto dei videogiochi, questi pattern possono aiutare a gestire la complessità crescente dei giochi moderni. Sei appassionato di videogiochi? Hai mai pensato a come vengono progettati e sviluppati? Sei curioso di scoprire i segreti dietro la creazione dei tuoi giochi preferiti? Allora sei nel posto giusto! Questo corso è stato progettato per fornirti una solida comprensione dei Design Pattern, strumenti fondamentali per ogni sviluppatore di giochi. Attraverso esempi pratici e realistici, esploreremo insieme come questi pattern possono aiutarti a creare giochi più efficienti, flessibili e mantenibili.

In Arrivo

Corso Fondamenti di Python

Python, uno dei linguaggi di programmazione più popolari al mondo, è ampiamente utilizzato da colossi dell’informatica e della tecnologia come Google, la Nasa e Mozilla.
Questo corso sui fondamenti di Python esplorerà le ragioni del suo successo duraturo. Impareremo la potente ed espressiva sintassi di Python, che consente di ottenere risultati impressionanti con poche righe di codice.

In Arrivo

Blender Masterclass 2

I paesaggi, in generale, possono risultare intimidatori data la loro complessità, costituita da numerosi elementi che sembrano formare qualcosa di virtualmente infinito. Durante le lezioni di questo corso, ci concentreremo su una scomposizione delle diverse fasi coinvolte nella creazione di una scena, affrontandole una alla volta attraverso passi graduati.

In Arrivo

Blender Masterclass 1

In questo corso di Blender 3D, Masha, in collaborazione con Gedemy, vi mostrerà il processo di modellazione, UV mapping, shading, e texture painting di un asset. Una volta apprese le basi, vedremo anche come effettuare il baking delle textures e la preparazione con successivo export della mesh in modo che possa essere utilizzabile all’interno di un qualsiasi altro software.

Crea il tuo account gratuito Gedemy

Gedemy è la piattaforma di formazione che ti permette di sviluppare competenze verticali corsi in un unico piano realizzati da esperti in ambiti come Marketing, Business, Design, Tech, AI e molto altro.

Login

Oppure

Non sei ancora registrato?