Tutorialspoint.dev

C# | Copy Constructor

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:

// C# program to illustrate the use 
// of copy constructor
using System;
  
namespace simplecopyconstructor {
  
class technicalscripter {
  
    // variables
    private string topic_name;
    private int article_no;
  
    // parametrized 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:

// 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 deatils of Vehicles
    public string DetailsofVehicle
    {
        get
        {
            return "Type: " + name.ToString() + 
                   " Color: " + color.ToString() + 
                   " Quantity: " + 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


This article is attributed to GeeksforGeeks.org

leave a comment

code

0 Comments

load comments

Subscribe to Our Newsletter