Úvod do Copy Constructor v jazyku C #

Konštruktor, ktorý kopíruje premenné iného objektu a vytvára nový objekt, sa nazýva kopírovací konštruktor. V C # je konštruktor kópie tiež parametrizovaný konštruktor. Parametrizovaný konštruktor je konštruktor, ktorý obsahuje parameter rovnakého typu triedy. Konštruktor kópie je užitočný vždy, keď chceme inicializovať novú inštanciu na hodnoty existujúcej inštancie. Konštruktor Kopírovania je teda konštruktor, ktorý v zásade odosiela hodnoty jedného objektu druhému objektu bez ovplyvnenia hodnôt existujúceho objektu.

Ako funguje funkcia Copy Constructor v jazyku C #?

V C # môžeme použiť konštruktor kópie, ak chceme auditovať triedu alebo pamätať na staré hodnoty triedy. C # neposkytuje konštruktor kópií. Konštruktor kópie však môžeme použiť spolu s iným konštruktorom.

syntax
class Name (
// Parameterized Constructor
public Name(parameters)
(
// code
)
public Name(Name instance of class) //copyconstructor
(
//code
)
)

Meno konštruktora je rovnaké ako jeho meno triedy. Metóda Podpis konštruktora pozostáva z názvu metódy spolu so zoznamom parametrov. V triede môže byť ľubovoľný počet konštruktorov. Konštruktor kópie nie je jediným konštruktorom v triede. Na vytvorenie objektu sa vyžaduje s konštruktorom kópie iný konštruktor. Nasleduje príklad, ktorý ukazuje, ako použiť kopírovací konštruktor pre triedu.

Príklad 1: Bez Copy Constructor

kód

class Demo
(
//variables
string name;
int age;
public Demo(string name, int age) //parameterized constructor
(
this.name = name;
this.age = age;
)
public void getData()
(
Console.WriteLine("Name is:(0)", name);
Console.WriteLine("Age is:(0)", age);
)
)
class Program
(
// Main method
static void Main(string() args)
(
Demo obj = new Demo("John", 20);
obj.getData();
Console.ReadLine();
)
)

Vo vyššie uvedenom príklade je iba jeden parametrizovaný konštruktor, ktorý má dve premenné. getData () sa používa na zobrazenie hodnôt objektu.

Výkon:

S Copy Constructor

kód

class Demo
(
string name;
int age;
public Demo(string name, int age) //paramertrized constructor
(
this.name = name;
this.age = age;
)
public Demo(Demo d) //copy constructor
(
this.name = d.name;
this.age = d.age;
)
public void getData()
(
Console.WriteLine("Name is:(0)", name);
Console.WriteLine("Age is:(0)", age);
)
)
class Program
(
//main method
static void Main(string() args)(
Demo obj = new Demo("John", 20);
obj.getData();
Demo obj1 = new Demo(obj); //new object
obj1.getData();
Console.ReadLine();
)
)

Vo vyššie uvedenom príklade je ukážka trieda, ktorá obsahuje dvoch konštruktorov. Kopírovací konštruktor sa vždy používa s iným konštruktorom. Konštruktér kópie odošle meno a vek vlastnosti jedného objektu na iný objekt. Nižšie je uvedený výstup vyššie uvedeného programu. Pretože prvé hodnoty sú pre existujúci objekt a kopírovací konštruktor, skopírujte tieto hodnoty a vytvorte nový objekt s rovnakými hodnotami ako existujúci objekt.

Príklad 2

kód

class pen
(
// variables
private string name;
private string color;
private int price;
// Copy constructor
public pen(pen a)
(
name = a.name;
color = a.color;quantity = a.price;
)
// Parameterized constructor
public pen(string name, string color, int price)(
this.name = name;
this.color = color;
this.quantity =price;
)
public void getPendetails()
(Console.WriteLine("Name is:(0)", name);
Console.WriteLine("color is:(0)", color);
Console.WriteLine("price is:(0)", price);
)
// Main Method
public static void Main()
(
// Create a new object.
pen p1 = new pen("Parker", "Blue", 30);
pen p2 = new pen(p1);
p2.getPendetails();
Console.ReadLine();
))
)

Vo vyššie uvedenom programe inicializujeme tri premenné pre pero triedy, ktoré definuje vlastnosti triedy. Konštruktér kopírovania kopíruje vlastnosti pera z jedného objektu do druhého. Funkcia main () inicializuje objekt s hodnotami ako parametrami pre parametrizovaný konštruktor. Potom sa hodnoty zobrazia pomocou getPendetails (). Nový objekt nemá vplyv na existujúce hodnoty objektov. Výstup je uvedený nižšie

Výkon:

Príklad 3

kód

class Calculate
(
//variables
private int a;
private int b;
public Calculate(int x, int y) // parameterized constructor
(
a = x;
b = y;
)
public Calculate(Calculate cal) //copy constructor
(
a = cal.a;
b = cal.b;
)
public int getSum()
(
return a + b;
)
)
class Sum
(
// main method
static void Main(string() args)
(
// create a new object
Calculate c1 = new Calculate(34, 4);
Calculate c2 = new Calculate(c1);
c2.getSum();
Console.ReadLine();
)
)

Teraz pochopme vyššie uvedený program.

Trieda obsahuje premenné aab a dva konštruktory, tj parametrizovaný konštruktor a kopírovací konštruktor.

kód

class Calculate
(
//variables
private int a;
private int b;
public Calculate(int x, int y) //parameterized constructor
(
a = x;
b = y;
)
public Calculate(Calculate cal) //copy constructor
(
a = cal.a;
b = cal.b;
)
public int getSum()
(
return a + b;
)
)

Konštruktor kópie odošle hodnoty cal objektu do aab. Funkcia get () vráti súčet aab. Main () je v triede Sum, ktorá inicializuje c1 ako parametre a potom skopíruje konštruktor, čím sa pošle hodnota objektu c1 do objektu c2. Súčet aab je zobrazený pomocou getSum ().

kód

class Sum
(
// main method
static void Main(string() args)
(
Calculate c1 = new Calculate(34, 4);
Calculate c2 = new Calculate(c1);
c2.getSum();
Console.ReadLine();
)
)

Výkon:

Pravidlá pre Copy Constructor v jazyku C #

  • Meno konštruktora kópií by malo byť rovnaké ako meno triedy.
  • Na kopírovanie objektu je potrebný konštruktor kopírovania s iným konštruktorom.
  • Konštruktor kópie neexistuje.
  • Konštruktér kópie nemôže byť konečný, statický a abstraktný.

záver

Takže kedykoľvek chcete skopírovať hodnotu objektu do iných objektov, môžete použiť konštruktor kópie. Je to spôsob, ako povedať kompilátoru, ako kopírovať hodnoty jedného objektu do iného objektu. Stáva sa to, keď odovzdáme parametre objektu. Rozhranie ICloneable sa používa aj pridaním metódy Clone do vašej triedy, ktorá vytvorí kópiu existujúceho objektu. V konštruktore kópií môžete určiť vlastné správanie zadaním jedinečného ID alebo skopírovaním niektorých povinných polí a nie iných.

Odporúčané články

Toto bol návod pre Copy Constructor v jazyku C #. Tu diskutujeme o tom, ako funguje konštruktor kópie v jazyku C #, s pravidlami, syntaxou a príslušným vzorovým kódom. Ak sa chcete dozvedieť viac, môžete si tiež prečítať naše dané články.

  1. C # if Vyhlásenie
  2. Slučka C # do-while
  3. C # Funkcie
  4. Kopírovanie Constructor v C ++ s príkladom
  5. Úvod do konštruktora v C
  6. Typy konštruktorov v jazyku C # s implementáciou kódu

Kategórie: