static void Main() { Person person1 = new Person("Vladislav"); Console.WriteLine("Person 1: " + person1); Person person2 = (Person)person1.Clone(); Console.WriteLine("Person 2: " + person2); Dog dog1 = new Dog("Woof"); Console.WriteLine("Dog 1: " + dog1); Dog dog2 = (Dog)dog1.Clone(); Console.WriteLine("Dog 2: " + dog2); }
private static void Main() { var p1 = new Person { Age = 42, BirthDate = Convert.ToDateTime("1977-01-01"), Name = "Jack Daniels", IdInfo = new IdInfo(666) }; // Выполнить поверхностное копирование p1 и присвоить её p2. var p2 = p1.ShallowCopy(); // Сделать глубокую копию p1 и присвоить её p3. var p3 = p1.DeepCopy(); // Сделать копию через метод Clone интерфейса IClonable var p4 = (Person)p1.Clone(); // Вывести значения p1, p2 и p3 и p4. Console.WriteLine("Original values of p1, p2, p3:"); Console.WriteLine(" p1 instance values: "); DisplayValues(p1); Console.WriteLine(" p2 instance values:"); DisplayValues(p2); Console.WriteLine(" p3 instance values:"); DisplayValues(p3); Console.WriteLine(" p4 instance values:"); DisplayValues(p4); // Изменить значение свойств p1 и отобразить значения p1, p2 и p3 и p4. p1.Age = 32; p1.BirthDate = Convert.ToDateTime("1900-01-01"); p1.Name = "Frank"; p1.IdInfo.IdNumber = 7878; Console.WriteLine("\nValues of p1, p2 and p3 after changes to p1:"); Console.WriteLine(" p1 instance values: "); DisplayValues(p1); Console.WriteLine(" p2 instance values (reference values have changed):"); DisplayValues(p2); Console.WriteLine(" p3 instance values (everything was kept the same):"); DisplayValues(p3); Console.WriteLine(" p4 instance values (everything was kept the same):"); DisplayValues(p4); }
static void Main(string[] args) { var aniket = new Person("Aniket"); aniket.Age = 30; var ashwini = (Person)aniket.Clone(); ashwini.Name = "Ashwini"; ashwini.Age = 27; Console.WriteLine(aniket.showInfo()); Console.WriteLine(ashwini.showInfo()); // Shallow Copy var empAniket = new Employee("Aniket", "Healthcare"); var empAshwini = (Employee)empAniket.Clone(); empAshwini.Name = "Ashwini"; empAniket.Dept.Name = "Medicine"; Console.WriteLine("----------Shallow Copy--------"); Console.WriteLine(empAniket.showInfo()); Console.WriteLine(empAshwini.showInfo()); // Deep Copy var empArush = new Employee("Arush", "Training"); var empAnoop = empArush.DeepCopy(); empAnoop.Name = "Anoop"; empArush.Dept.Name = "IT Support"; Console.WriteLine("----------Deep Copy--------"); Console.WriteLine(empArush.showInfo()); Console.WriteLine(empAnoop.showInfo()); }
static void Main(string[] args) { Person p1 = new Person(); p1.Age = 42; p1.BirthDate = Convert.ToDateTime("1977-01-01"); p1.Name = "Jack"; p1.SecondName = "Daniels"; p1.IdInfo = new IdInfo(666); p1.Address = new Address("Kings Road", 15); Person p2 = p1.ShallowCopy(); Person p3 = (Person)p1.Clone(); Console.WriteLine("Original values of p1, p2, p3:"); Console.WriteLine(" p1 instance values: "); DisplayValues(p1); Console.WriteLine(" p2 instance values:"); DisplayValues(p2); Console.WriteLine(" p3 instance values:"); DisplayValues(p3); p1.Age = 32; p1.BirthDate = Convert.ToDateTime("1900-01-01"); p1.Name = "Frank"; p1.SecondName = "Simpson"; p1.IdInfo.IdNumber = 7878; p1.Address = new Address("Wall street", 10); Console.WriteLine("\nValues of p1, p2 and p3 after changes to p1:"); Console.WriteLine(" p1 instance values: "); DisplayValues(p1); Console.WriteLine(" p2 instance values (reference values have changed):"); DisplayValues(p2); Console.WriteLine(" p3 instance values (everything was kept the same):"); DisplayValues(p3); Console.ReadLine(); }
public static void Main(string[] args) { Person person = new Person(); person.Name = "Person"; person.Email = "*****@*****.**"; person.Address.Street = "221B"; Person person1 = person.Clone() as Person; person1.Name = "Person"; person1.Email = "*****@*****.**"; person1.Address.Street = "221B Baker Street"; Console.WriteLine("Before Cloning......."); Console.WriteLine("Name:{0} and Email:{1}, Street:{2}", person.Name, person.Email, person.Address.Street); Console.WriteLine("After Cloning......."); Console.WriteLine("Name:{0} and Email:{1}, Street:{2}", person1.Name, person1.Email, person1.Address.Street); }