Skip to content

Instantly share code, notes, and snippets.

@ezirmusitua
Created November 11, 2019 05:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ezirmusitua/62bddd0368736252cad9b401192591ea to your computer and use it in GitHub Desktop.
Save ezirmusitua/62bddd0368736252cad9b401192591ea to your computer and use it in GitHub Desktop.
[Copy contructor] Copy constructor in CSharp #CSharp
// reference: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/how-to-write-a-copy-constructor
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment