.NET Framework Definizione di Struct

Esempio

Le strutture ereditano da System.ValueType, sono tipi di valore e vivono nello stack. Quando i tipi di valore vengono passati come parametro, vengono passati per valore.

Struct MyStruct
{
    public int x;
    public int y;
}

Passato per valore significa che il valore del parametro viene copiato per il metodo e qualsiasi modifica apportata al parametro nel metodo non viene riflessa all'esterno del metodo. Ad esempio, si consideri il seguente codice, che chiama un metodo denominato AddNumbers , passando le variabili a e b , che sono di tipo int , che è un tipo di valore.

int a = 5;
int b = 6;

AddNumbers(a,b);

public AddNumbers(int x, int y)
{
    int z = x + y; // z becomes 11
    x = x + 5; // now we changed x to be 10
    z = x + y; // now z becomes 16
} 

Anche se abbiamo aggiunto da 5 a x all'interno del metodo, il valore di a rimane invariato, perché è un tipo Value, e ciò significa che x era una copia del valore di a valore, ma non in realtà a .

Ricorda, i tipi di valore vivono nello stack e vengono passati per valore.