static void Main(string[] args)
{
PuntoStruct p0 = new PuntoStruct();
PuntoStruct p1 = new PuntoStruct(10, 20, 30);
PuntoStruct p2 = p1;
p0.printPunto("Struct P0: ");
p1.printPunto("Struct P1: ");
p2.printPunto("Struct P2: ");
p1.updateCoords(11, 22, 33);
p1.printPunto("Struct P1 dopo: ");
p2.printPunto("Struct P2 dopo: ");
}
Il risultato:
STRUCT PO: x = 0, y = 0; y = 0
STRUCT P1: x = 10, y = 20; y = 30
STRUCT P2: x = 10, y = 20; y = 30
STRUCT P1 dopo: x = 11, y = 22; y = 33
STRUCT P2 dopo: x = 10, y = 20; y = 30
Dopo la modifica di p1, p2 è rimasto invariato, perchè ha un suo spazio di memoria, riempito solo la prima volta dalla copia dei valori di p1, ma poi è rimasto indipendente.
La soluzione con la classe, ed i riferimenti funzioneranno diversamente :-) .