Blog Stats
  • Posts - 16
  • Articles - 0
  • Comments - 123
  • Trackbacks - 31

 

[70-553] – 1. Section 1 – 1. Dev application – 1 – Manage data (2)

Manage data in a .NET Framework application using .NET Framework 2.0 system types (System namespace)

Reference Types:  sono gli oggetti, sono sempre passati come riferimento. Possono essere messi a null,  e quando si esegue una assegnazione in realtà  non viene fisicamente copiata la memoria, ma ridiretto il puntatore.

Definisco  Punto come classe:

        public class PuntoClass

        {

            private double _x, _y, _z;

            public PuntoClass(double x1, double y1, double z1)

            {

                updateCoords(x1, y1, z1);

            }

            public void printPunto(string name )

            {

                Console.WriteLine("{0}  x = {1}, y ={2}, z = {3}",name, _x, _y, _z);

            }

            public void updateCoords(double x1, double y1, double z1)

            {

                _x = x1;

                _y = y1;

                _z = z1;

             }

        };

E lo uso:

        static void Main(string[] args)

        {

            PuntoClass pc0 = new PuntoClass(0,0,0);   //non c'e' il costruttore di default

            PuntoClass pc1 = new PuntoClass(10, 20, 30);

            PuntoClass pc2 = pc1;

            pc0.printPunto("Class  P0: ");

            pc1.printPunto("Class  P1: ");

            pc2.printPunto("Class  P2: ");

            pc1.updateCoords(11, 22, 33);

            pc1.printPunto("Class  P1 dopo: ");

            pc2.printPunto("Class  P2 dopo: ");

        }

Il risultato:

       Class PO: x = 0, y = 0; y = 0

       Class P1: x = 10, y = 20; y = 30

       Class P2: x = 10, y = 20; y = 30

       Class P1 dopo: x = 11, y = 22; y = 33

       Class P2 dopo: x = 11, y = 22; y = 33

 

Dopo la modifica di p1, p2 è “ovviamente” cambiato in quanto entrambe i puntatori facevano riferimento alla stessa cella di memoria, l’aggiornamento attraverso l’uno o l’altro puntatore è assolutamente equivalente.

I riferimenti completi sono in http://msdn2.microsoft.com/en-us/library/490f96s2.aspx  .

 

Comments have been closed on this topic.
 

 

Copyright © Bruna Gavioli