Open In App

C# | Copy Constructor

Last Updated : 04 Dec, 2021
Improve
Improve
Like Article
Like
Save
Share
Report

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 constructor
using 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 Class
public class GFG {
 
// Main Method
static 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 constructor
using 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


Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads