Bevezetés a C # kivitelezőbe

A kivitelezőt, amely egy másik objektum változóit másolja és új objektumot hoz létre, másolási kivitelezőnek nevezzük. A C #-ban a másolási konstruktor egy paraméteres konstruktor is. A paraméterezett konstruktor olyan konstruktor, amely ugyanazon osztálytípus paraméterét tartalmazza. A másolási konstruktor akkor hasznos, ha új példányt akarunk inicializálni egy meglévő példány értékeire. Tehát a Copy konstruktor olyan konstruktor, amely alapvetõen egy objektum értékeit továbbítja egy másik objektumra anélkül, hogy befolyásolja a létezõ objektum értékeit.

Hogyan működik a Copy Constructor a C # -ben?

A C # -ben használhatunk egy másolati konstruktort, ha auditálni akarunk egy osztályt, vagy hogy emlékezzünk az osztály régi értékeire. A C # nem biztosít másolatkészítőt. Ugyanakkor használhatunk másoló konstruktort egy másik konstruktorral együtt.

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

A kivitelező neve megegyezik az osztály nevével. Módszer A konstruktor aláírása a módszer nevét és annak paraméterlistáját tartalmazza. Az osztályban tetszőleges számú konstruktor lehet. A másolat kivitelező nem az egyetlen kivitelező az osztályban. Egy másik konstruktorra szükség van egy másolatkészítővel az objektum létrehozásához. Az alábbiakban bemutatjuk a példát, amely bemutatja, hogyan lehet a másolatkészítőt használni egy osztályhoz.

1. példa: Másolókészítő nélkül

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

A fenti példában csak egy paraméteres konstruktor van, amely két változóval rendelkezik. A getData () az objektum értékeinek megjelenítésére szolgál.

Kimenet:

Copy Constructor segítségével

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

A fenti példában a Demo egy osztály, amely két konstruktort tartalmaz. A másolat-kivitelezőt mindig egy másik kivitelezővel használják. A másolatkészítő elküldi az egyik objektum nevét és életkorának tulajdonságait egy másik objektumnak. Az alábbiakban a fenti program kimenete látható. Mivel az első értékek a létező objektumra vonatkoznak, és a másoló konstruktor másolja ezeket az értékeket, és hozzon létre egy új objektumot, ugyanolyan értékekkel, mint a létező objektum.

2. példa

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

A fenti programban három változót inicializálunk egy osztálytoll számára, amely meghatározza az osztály tulajdonságait. A kivitelező másolja a toll tulajdonságait az egyik tárgyról a másikra. A main () függvény inicializálja az objektumot az értékekkel, mint a paraméterezett konstruktor paraméterei. Ezután az értékek megjelennek a getPendetails () segítségével. Az új objektum nem érinti a meglévő objektum értékeket. A kimenet az alább látható

Kimenet:

3. példa

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

Most értjük meg a fenti programot.

Az osztály tartalmazza az a és b változókat és két konstruktort, azaz egy paraméteres konstruktort és egy másolati konstruktort.

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

A másoló konstruktor elküldi a cal objektum értékeit az a és b értékre. A get () függvény az a és b összegét adja vissza. A main () az Sum osztályban található, amely inicializálja a c1-et paraméterként, majd másolja a konstruktort, és elküldi a c1 objektum értékét a c2 objektumnak. Az a és b összege a getSum () használatával jelenik meg.

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

Kimenet:

A C # kivitelezőre vonatkozó szabályok

  • A másolatkészítő nevének meg kell egyeznie az osztály nevével.
  • Egy másik konstruktorra szükség van egy másolatkészítővel az objektum másolásához.
  • Nincs visszatérő típusú másolatkészítő.
  • A kivitelező nem lehet végleges, statikus és elvont.

Következtetés

Tehát, amikor egy objektum értéket másolni kíván más objektumra, használhat másoló konstruktort. Ez egy módja annak, hogy megmondja a fordítónak, hogyan másolhatja az egyik objektum értékeit egy másik objektumba. Ez akkor fordul elő, amikor átadjuk a paramétereket egy objektumnak. Az ICloneable interfészt arra is használják, hogy egy klónozási módszert adnak az osztályhoz, amely másolatot készít a meglévő objektumról. A másolókészítőben megadhatja az egyéni viselkedést egyedi azonosító megadásával vagy néhány szükséges mező másolásával, a többi nem.

Ajánlott cikkek

Ez egy útmutató a Copy Constructor számára a C # -ben. Itt tárgyaljuk, hogyan működik a másoló konstruktor a C # -ben, a szabályokkal, a szintaxissal és a megfelelő minta kóddal. Megnézheti az adott cikkeket is, hogy többet megtudjon-

  1. C # ha nyilatkozat
  2. C # do-while hurok
  3. C # Funkciók
  4. Másolja a konstruktorot a C ++ alkalmazásba a példával
  5. Bevezetés a konstruktorba C
  6. A konstruktor típusai a C # kód bevezetésével

Kategória: