Sissejuhatus C # koopiakonstruktorisse

Ehitajat, kes kopeerib teise objekti muutujaid ja loob uue objekti, nimetatakse koopiakonstruktoriks. C #-s on koopiakonstruktor ka parameetriline konstruktor. Parameetriga konstruktor on konstruktor, mis sisaldab sama klassitüübi parameetrit. Kopeerimiskonstruktor on kasulik alati, kui soovime uue eksemplari lähtestada olemasoleva eksemplari väärtustega. Niisiis, konstruktor Kopeerimine on konstruktor, mis põhimõtteliselt saadab ühe objekti väärtused teisele objektile, ilma et see mõjutaks olemasoleva objekti väärtusi.

Kuidas Copy Constructor töötab C # -s?

C #-s saame kasutada koopiakonstruktorit, kui soovime klassi auditeerida või klassi vanu väärtusi meeles pidada. C # ei paku koopiakonstruktorit. Siiski võime kasutada koopiakonstruktorit koos teise konstruktoriga.

Süntaks
class Name (
// Parameterized Constructor
public Name(parameters)
(
// code
)
public Name(Name instance of class) //copyconstructor
(
//code
)
)

Ehitaja nimi on sama mis tema klassi nimi. Meetod Konstruktori allkiri koosneb meetodi nimest koos selle parameetrite loendiga. Klassis võib olla ükskõik milline arv konstruktoreid. Koopiakonstruktor pole ainus konstruktor klassis. Objekti loomiseks on vaja veel ühte konstrueerijat. Järgnevas näites on toodud näide, kuidas klassis koopiakonstruktorit kasutada.

Näide 1: ilma koopiakonstruktorita

Kood

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();
)
)

Ülaltoodud näites on ainult üks parameetritega konstruktor, millel on kaks muutujat. getData () kasutatakse objekti väärtuste kuvamiseks.

Väljund:

Kopeerimiskonstruktoriga

Kood

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();
)
)

Ülaltoodud näites on demo klass, mis sisaldab kahte konstruktorit. Koopiakonstruktorit kasutatakse alati koos teise konstruktoriga. Koopiakonstruktor saadab ühe objekti nime ja vanuse omadused teisele objektile. Allpool on ülaltoodud programmi väljund. Kuna esimesed väärtused on olemasoleva objekti jaoks ja kopeerige konstruktor, kopeerige need väärtused ja looge uus objekt, millel on samad väärtused kui olemasoleval objektil.

Näide 2

Kood

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();
))
)

Ülaltoodud programmis lähtestame klassipliiatsi jaoks kolm muutujat, mis määratleb klassi omadused. Kopeeri konstruktor kopeerib pliiatsi omadused ühest objektist teise. Põhifunktsioon () lähtestab objekti parameetritega konstruktori parameetritega. Seejärel kuvatakse väärtused, kasutades getPendetails (). Uus objekt ei mõjuta olemasolevaid objekti väärtusi. Väljund on näidatud allpool

Väljund:

Näide 3

Kood

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();
)
)

Nüüd mõelgem ülaltoodud programmist.

Klass sisaldab muutujaid a ja b ning kahte konstruktorit ehk parameetriga konstruktorit ja koopiakonstruktorit.

Kood

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;
)
)

Koopiakonstruktor saadab cal objekti väärtused punktidesse a ja b. Funktsioon saab () tagastab summade a ja b. Peamine () on klassis Sum, mis initsialiseerib parameetri c1 ja kopeerib konstruktorile seejärel objektile c1 objekti c1 väärtuse. A ja b summa kuvatakse kasutades getSum ().

Kood

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äljund:

Reeglid kopeerimiskonstruktori jaoks C # -s

  • Koopiakonstruktori nimi peaks olema sama, mis klassi nimi.
  • Objekti kopeerimiseks on vaja veel ühte konstruktorit.
  • Puudub tagastamise tüüp.
  • Koopiakonstruktor ei saa olla lõplik, staatiline ja abstraktne.

Järeldus

Nii et kui soovite objekti väärtust teistesse objektidesse kopeerida, võite kasutada koopiakonstruktorit. See on viis kompilaatorile öelda, kuidas kopeerida ühe objekti väärtused teise objekti. See juhtub siis, kui anname objektile parameetrid. ICloneable liidest kasutatakse ka klassile kloonimismeetodi lisamisega, mis teeb olemasolevast objektist koopia. Kopeerimiskonstruktsioonis saate kohandatud käitumise määratleda, andes kordumatu ID või kopeerides mõned vajalikud väljad, mitte teisi.

Soovitatavad artiklid

See on juhend C # eksemplaris Copy Constructor. Siin arutleme, kuidas koopiate konstruktor C #-s töötab, koos reeglite, süntaksi ja sobiva näidiskoodiga. Lisateavet leiate ka meie antud artiklitest -

  1. C # kui avaldus
  2. C # tegemise aeg
  3. C # funktsioonid
  4. Kopeeri konstruktor näites C ++
  5. Sissejuhatus konstruktorisse C
  6. C # konstruktori tüübid koos koodirakendusega

Kategooria: