Salin Pembina dalam C#

WBOY
Lepaskan: 2024-09-03 15:12:44
asal
638 orang telah melayarinya

Pembina, yang menyalin pembolehubah objek lain dan mencipta objek baharu, dipanggil pembina salinan. Dalam C#, pembina salinan juga merupakan pembina berparameter. Pembina berparameter ialah pembina yang mengandungi parameter jenis kelas yang sama. Pembina salinan berguna apabila kita ingin memulakan contoh baharu kepada nilai contoh sedia ada. Jadi, pembina Salin ialah pembina yang pada asasnya menghantar nilai satu objek ke objek lain tanpa menjejaskan nilai objek sedia ada.

Bagaimanakah Copy Constructor berfungsi dalam C#?

Dalam C#, kita boleh menggunakan pembina salinan jika kita ingin mengaudit kelas atau mengingati nilai lama kelas itu. C# tidak menyediakan pembina salinan. Walau bagaimanapun, kita boleh menggunakan pembina salinan bersama-sama dengan pembina lain.

Sintaks

class Name {
// Parameterized Constructor
public Name(parameters)
{
// code
}
public Name(Name instance of class)   //copyconstructor
{
//code
}
}
Salin selepas log masuk

Nama pembina adalah sama dengan nama kelasnya. Kaedah Tandatangan pembina terdiri daripada nama kaedah bersama senarai parameternya. Terdapat beberapa bilangan pembina dalam kelas. Pembina salinan bukan satu-satunya pembina dalam kelas. Pembina lain diperlukan dengan pembina salinan untuk mencipta objek. Berikut ialah contoh yang menunjukkan cara menggunakan pembina salinan untuk kelas.

Contoh 1: Tanpa Pembina Salin

Kod

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();
}
}
Salin selepas log masuk

Dalam contoh di atas, hanya terdapat satu pembina parameter, yang mempunyai dua pembolehubah. getData() digunakan untuk memaparkan nilai objek.

Output:

 Salin Pembina dalam C#

Dengan Copy Constructor

Kod

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();
}
}
Salin selepas log masuk

Dalam contoh di atas, Demo ialah kelas yang mengandungi dua pembina. Pembina salinan sentiasa digunakan dengan pembina lain. Pembina salinan menghantar nama dan sifat umur satu objek ke objek lain. Di bawah ialah output program di atas kerana nilai pertama adalah untuk objek sedia ada, dan salin pembina menyalin nilai ini dan cipta objek baharu dengan nilai yang sama seperti objek sedia ada.

Contoh 2

Kod

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();
}}
}
Salin selepas log masuk

Dalam atur cara di atas, kami memulakan tiga pembolehubah untuk pen kelas yang mentakrifkan sifat kelas. Pembina salin menyalin sifat pen dari satu objek ke objek lain. Fungsi main() memulakan objek dengan nilai sebagai parameter untuk pembina parameter. Kemudian nilai dipaparkan menggunakan getPendetails(). Objek baharu tidak menjejaskan nilai objek sedia ada. Output ditunjukkan di bawah.

Output:

Salin Pembina dalam C#

Contoh 3

Kod

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();
}
}
Salin selepas log masuk

Sekarang mari kita fahami program di atas.

Kelas mengandungi pembolehubah a dan b dan dua pembina, iaitu pembina berparameter dan pembina salinan.

Kod

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;
}
}
Salin selepas log masuk

Pembina salinan menghantar nilai objek cal ke dalam a dan b.  Fungsi gets() mengembalikan jumlah a dan b. Main() berada dalam kelas Sum, yang memulakan c1 sebagai parameter dan kemudian menyalin pembina dihantar nilai objek c1 ke objek c2. Jumlah a dan b dipaparkan menggunakan getSum().

Kod

class Sum
{
// main method
static void Main(string[] args)
{
Calculate c1 = new Calculate(34, 4);
Calculate c2 = new Calculate(c1);
c2.getSum();
Console.ReadLine();
}
}
Salin selepas log masuk

Output:

Salin Pembina dalam C#

 Peraturan untuk Copy Constructor dalam C#

  • Nama pembina salinan hendaklah sama dengan nama kelas.
  • Pembina lain diperlukan dengan pembina salinan untuk menyalin objek.
  • Tiada jenis pemulangan pembina salinan.
  • Pembina salinan tidak boleh muktamad, statik dan abstrak.

Kesimpulan

Jadi apabila anda ingin menyalin nilai objek ke objek lain, anda boleh menggunakan pembina salinan. Ini adalah cara untuk memberitahu pengkompil cara menyalin nilai satu objek dalam objek lain. Ia berlaku apabila kita menghantar parameter kepada objek. Antara muka ICloneable juga digunakan dengan menambahkan kaedah Klon ke kelas anda, membuat salinan objek sedia ada. Dalam pembina salinan, anda boleh menentukan gelagat tersuai dengan memberikan ID unik atau dengan menyalin beberapa medan yang diperlukan dan bukan yang lain.

Atas ialah kandungan terperinci Salin Pembina dalam C#. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!