Condividi tramite


Strutture (confronto tra C# e Java)

Aggiornamento: novembre 2007

C# supporta la parola chiave struct, un altro elemento specifico del linguaggio C ma non disponibile in Java. È possibile considerare struct come una classe leggera. Nonostante le structs possano contenere costruttori, costanti, campi, metodi, proprietà, indicizzatori, operatori e tipi nidificati, vengono utilizzate principalmente per incapsulare gruppi di campi correlati. Poiché le strutture sono tipi di valore, possono essere allocate in modo più efficiente delle classi. La differenza tra le structs e le classi consiste nel fatto che le strutture non possono essere astratte e non supportano l'ereditarietà dell'implementazione.

Nell'esempio riportato di seguito viene inizializzata una struct con la parola chiave new, chiamando il costruttore senza parametri predefinito, quindi vengono impostati i membri dell'istanza.

public struct Customer
{
    public int ID;
    public string Name;

    public Customer(int customerID, string customerName)
    {
        ID = customerID;
        Name = customerName;
    }
}

class TestCustomer
{
    static void Main()
    {
        Customer c1 = new Customer();  //using the default constructor

        System.Console.WriteLine("Struct values before initialization:");
        System.Console.WriteLine("ID = {0}, Name = {1}", c1.ID, c1.Name);
        System.Console.WriteLine();

        c1.ID = 100;
        c1.Name = "Robert";

        System.Console.WriteLine("Struct values after initialization:");
        System.Console.WriteLine("ID = {0}, Name = {1}", c1.ID, c1.Name);
    }
}

Output

Quando si compila e si esegue il codice precedente, l'output mostra che le variabili struct vengono inizializzate per impostazione predefinita. La variabile int viene inizializzata su 0 e la variabile string su una stringa vuota:

Struct values before initialization:

ID = 0, Name =

Struct values after initialization:

ID = 100, Name = Robert

Vedere anche

Attività

Esempio di strutture

Concetti

Guida per programmatori C#

Riferimenti

Strutture (Guida per programmatori C#)

Altre risorse

Linguaggio di programmazione C# per sviluppatori Java