示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        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());
        }
示例#4
0
        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();
        }
示例#5
0
        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);
        }