C# | Copy Constructor - GeeksforGeeks

04 Dec, 2021
A constructor that creates an object by copying variables from another object or that copies the data of one object into another object is termed as the Copy Constructor. It is a parameterized constructor that contains a parameter of the same class type. The main use of copy constructor is to initialize a new instance to the values of an existing instance. Normally, C# does not provide a copy constructor for objects, but if you want to create a copy constructor in your program you can create according to your requirement.Syntax:  
class Class_Name {

        // Parameterized Constructor
        public Class_Name(parameter_list)
        {

            // code

        }

        // Copy Constructor
        public Class_Name(Class_Name instance_of_class)
        {

            // code

        }

    }
Example 1:
CSharp
// C# program to illustrate the use// of copy constructorusing System; namespace simplecopyconstructor { class technicalscripter {     // variables    private string topic_name;    private int article_no;     // parameterized constructor    public technicalscripter(string topic_name, int article_no)    {        this.topic_name = topic_name;        this.article_no = article_no;    }     // copy constructor    public technicalscripter(technicalscripter tech)    {        topic_name = tech.topic_name;        article_no = tech.article_no;    }     // getting the topic name and    // number of articles published    public string Data    {         get        {            return "The name of topic is: " + topic_name +                   " and number of published article is: " +                                    article_no.ToString();        }    }} // Driver Classpublic class GFG { // Main Methodstatic public void Main(){     // creating object t1    // and provide value to the object    technicalscripter t1 = new technicalscripter(" C# | Copy Constructor", 38);     // Creating object t2 and    // copy the data of t1 object    // into t2 object    technicalscripter t2 = new technicalscripter(t1);     Console.WriteLine(t2.Data);    Console.ReadLine();}}}
Output:
The name of topic is:  C# | Copy Constructor and number of published article is: 38
Example 2:
CSharp
// C# Program to illustrate the use// of Copy constructorusing System; namespace copyConstructorExample { class Vehicle {     // variables    private string name;    private string color;    private int quantity;     //  Copy constructor    public Vehicle(Vehicle a)    {        name = a.name;        color = a.color;        quantity = a.quantity;    }     // Parameterized constructor    public Vehicle(string name, string color, int quantity)    {        this.name = name;        this.color = color;        this.quantity = quantity;    }     // Get details of Vehicles    public string DetailsofVehicle    {        get        {            return "Type: " + name.ToString() +                   "\nColor: " + color.ToString() +                   "\nQuantity: " + quantity.ToString();        }    }     // Main Method    public static void Main()    {         // Create a new object.        Vehicle v1 = new Vehicle("Bike", "Black", 40);         // here is v1 details are copied to v2.        Vehicle v2 = new Vehicle(v1);         Console.WriteLine(v2.DetailsofVehicle);    }}}
Output: 
Type: Bike
Color: Black
Quantity: 40
adnanirshad158
as5853535
CSharp-OOP
C#
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
C# Dictionary with examples
C# | Delegates
Destructors in C#
Extension Method in C#
C# | String.IndexOf( ) Method | Set - 1
Introduction to .NET Framework
C# | Abstract Classes
C# | Data Types
Different ways to sort an array in descending order in C#
HashSet in C# with Examples