Пример #1
0
        // Método para implementar a ICloneable
        public object Clone()
        {
            CAuto temp = new CAuto(modelo, precio);

            temp.Tenencia = tenencia;

            return(temp);
        }
        public CTiendaAutos()
        {
            disponibles = new CAuto[4];

            disponibles[0] = new CAuto("Soul", 220000.50);
            disponibles[1] = new CAuto("Fit", 175600.70);
            disponibles[2] = new CAuto("March", 168900.00);
            disponibles[3] = new CAuto("Spark", 160400.40);
        }
Пример #3
0
        static void Main(string[] args)
        {
            Console.OutputEncoding = Encoding.UTF8;

            CAuto Auto1 = new CAuto("March", 170_000);

            // Aqui pensamos que hacemos clonado
            // Pero solo es otra variable referenciada a la misma instancia

            CAuto Auto2 = Auto1;

            Auto1.CalculaTenencia(0.10);
            Auto2.CalculaTenencia(0.10);

            // Imprimimos
            Auto1.MuestraInformacion();
            Auto2.MuestraInformacion();

            Console.WriteLine("---------------------");

            // Hacemos un cambio, si fuera un con solo uno cambia
            Auto1.Precio = 60_000;

            // Imprimimos
            Auto1.MuestraInformacion();
            Auto2.MuestraInformacion();

            Console.WriteLine("==========================");

            // Ahora si hacemos un clon
            CAuto Auto3 = (CAuto)Auto1.Clone();

            // Imprimimos
            Auto1.MuestraInformacion();
            Auto3.MuestraInformacion();
            Console.WriteLine("---------------------");

            // Modificamos uno, el otro no debe alterarse
            Auto1.Precio = 250_000;

            // Imprimimos
            Auto1.MuestraInformacion();
            Auto3.MuestraInformacion();
            Console.WriteLine("---------------------");
        }