static void Main(string[] args) { /* Tipo de valor */ Console.WriteLine("Tipos de valor"); // Crear un punto con valores iniciales PuntoVal puntoV = new PuntoVal(5, 10); // asignar el punto creado a otra variable llamada otroPunto // Como es un tipo de valor esta operación hace una copia PuntoVal otroPunto = puntoV; // Modificaciones en otroPunto no afectan al punto original otroPunto.X = 100; otroPunto.Y = 60; // Verificamos los valores Console.WriteLine("punto: ({0},{1})", puntoV.X, puntoV.Y); Console.WriteLine("otroPunto: ({0},{1})", otroPunto.X, otroPunto.Y); /* Tipo de referencia */ Console.WriteLine("\nTipos de referencia"); PuntoRef puntoR = new PuntoRef(5, 10); // asignar el punto creado a otra variable llamada segundoPunto // Como es un tipo de referencia ahora hay dos referencias apuntando al mismo objeto PuntoRef segundoPunto = puntoR; // Modificaciones en cualquier referencia modifican al objeto segundoPunto.X = 200; segundoPunto.Y = 300; // Verificamos el cambio Console.WriteLine("punto: ({0},{1})", puntoR.X, puntoR.Y); Console.WriteLine("otroPunto: ({0},{1})", segundoPunto.X, segundoPunto.Y); }
static void Main(string[] args) { // Tipo de valor Console.WriteLine("Tipos de valor"); PuntoVal puntoV = new PuntoVal(5, 10); PuntoVal otroPunto = puntoV; otroPunto.X = 100; otroPunto.Y = 60; Console.WriteLine("punto: ({0}, {1})", puntoV.X, puntoV.Y); Console.WriteLine("otroPunto: ({0}, {1})", otroPunto.X, otroPunto.Y); Console.WriteLine(); // Tipos de referencia Console.WriteLine("Tipos de referencia"); PuntoRef puntoR = new PuntoRef(5, 10); PuntoRef segundoPunto = puntoR; segundoPunto.X = 200; segundoPunto.Y = 300; Console.WriteLine("punto: ({0}, {1})", puntoR.X, puntoR.Y); Console.WriteLine("segundoPunto: ({0}, {1})", segundoPunto.X, segundoPunto.Y); Console.Read(); }