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(); }
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); }
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(); }