Exemplo n.º 1
0
        static void Main(string[] args)
        {
            House house1 = new House(42, "Saksaganskogo");
            House house2 = house1.Clone();

            Console.WriteLine("Дом №1:");
            house1.PrindInfo();
            Console.WriteLine(new string('-', 50));
            Console.WriteLine("Поверхностное копирование");
            Console.WriteLine("Дом№2:");
            house1.PrindInfo();

            house1.Street = new Street("Dneprovskaya Naberezhnaya");

            Console.WriteLine(new string('-', 50));
            Console.WriteLine("После изменения названия улицы");
            Console.WriteLine("Дом №1:");
            house1.PrindInfo();
            Console.WriteLine("Дом№2:");
            house1.PrindInfo();

            Console.WriteLine(new string('-', 50));
            Console.WriteLine("Глубокое копирование");
            House house3 = house1.DeepClone();

            house3.Street = new Street("Druzhby Narodov");
            Console.WriteLine("После изменения названия улицы");
            Console.WriteLine("Дом №1:");
            house1.PrindInfo();
            Console.WriteLine("Дом №3:");
            house3.PrindInfo();
        }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            House house = new House();

            house.A = 2;
            house.B = 4;
            House house1 = house.Clone() as House;
            House house2 = house.DeepClone() as House;

            Console.WriteLine(house.GetHashCode() + ": " + house.A + " " + house.B);
            Console.WriteLine(house1.GetHashCode() + ": " + house1.A + " " + house1.B);
            Console.WriteLine(house2.GetHashCode() + ": " + house2.A + " " + house2.B);
            house.A  = 8;
            house2.A = 6;
            Console.WriteLine(house.GetHashCode() + ": " + house.A + " " + house.B);
            Console.WriteLine(house1.GetHashCode() + ": " + house1.A + " " + house1.B);
            Console.WriteLine(house2.GetHashCode() + ": " + house2.A + " " + house2.B);
        }
Exemplo n.º 3
0
        static void Main(string[] args)
        {
            Console.BackgroundColor = ConsoleColor.White;
            Console.ForegroundColor = ConsoleColor.Black;
            Console.WriteLine(string.Format("Cloning Types:\n".ToUpper()));
            Console.BackgroundColor = ConsoleColor.Yellow;
            Console.ForegroundColor = ConsoleColor.Black;
            Console.WriteLine(string.Format(" -  Deep cloning:".ToUpper()));
            House houseOne = new House();

            Console.WriteLine(houseOne);
            House houseTwo = houseOne.DeepClone() as House;

            Console.WriteLine(houseTwo);
            Console.WriteLine(new string('-', 50));
            Console.BackgroundColor = ConsoleColor.Red;
            Console.ForegroundColor = ConsoleColor.White;
            Console.WriteLine(string.Format(" -  Deep cloning check. Change property houseTwo.City = <Moscow>: ".ToUpper()));
            // Изменяем houseTwo.City (при этом houseOne.City не изменится)
            houseTwo.City = "Moscow";
            Console.WriteLine(houseOne);
            Console.WriteLine(houseTwo);


            Console.BackgroundColor = ConsoleColor.Green;
            Console.ForegroundColor = ConsoleColor.Black;
            Console.WriteLine(string.Format("\n -  Surface cloning:".ToUpper()));
            Console.WriteLine(houseOne);
            houseTwo = houseOne.Clone() as House;
            Console.WriteLine(houseTwo);

            Console.WriteLine(new string('-', 50));
            Console.BackgroundColor = ConsoleColor.Red;
            Console.ForegroundColor = ConsoleColor.White;
            Console.WriteLine(string.Format(" -  Surface cloning check. Change property houseTwo.City = <Harkiv>: ".ToUpper()));
            // Изменяем houseTwo.City (при этом houseOne.City тоже изменится)
            houseTwo.City = "Harkiv";
            Console.WriteLine(houseOne);
            Console.WriteLine(houseTwo);

            Console.ReadKey();
        }