Unlike some languages, C# does not provide a copy constructor. If you create a new object and want to copy the values from an existing object, you have to write the appropriate method yourself.
Whenever a class or struct is created, its constructor is called. A class or struct may have multiple constructors that take different arguments. Constructors allow the programmer to set default values, limit instantiation, and write code that is flexible and easy to read.