class Person { // Copy constructor. public Person(Person previousPerson) { Name = previousPerson.Name; Age = previousPerson.Age; } //// Alternate copy constructor calls the instance constructor. //public Person(Person previousPerson) // : this(previousPerson.Name, previousPerson.Age) //{ //} // Instance constructor. public Person(string name, int age) { Name = name; Age = age; } public int Age { get; set; } public string Name { get; set; } public string Details() { return Name + " is " + Age.ToString(); } } class TestPerson { static void Main() { // Create a Person object by using the instance constructor. Person person1 = new Person("George", 40); // Create another Person object, copying person1. Person person2 = new Person(person1); // Change each person's age. person1.Age = 39; person2.Age = 41; // Change person2's name. person2.Name = "Charles"; // Show details to verify that the name and age fields are distinct. Console.WriteLine(person1.Details()); Console.WriteLine(person2.Details()); // Keep the console window open in debug mode. Console.WriteLine("Press any key to exit."); Console.ReadKey(); } } // Output: // George is 39 // Charles is 41