Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mengelak Penduaan Kod Apabila Memulakan Medan Baca Sahaja dalam Berbilang Pembina?
Panggil pembina lain dalam pembina
Dalam kelas, pembina digunakan untuk memulakan medan apabila objek dicipta. Dalam sesetengah kes, berbilang pembina mungkin memberikan nilai kepada medan baca sahaja. Pertimbangkan kelas berikut:
<code class="language-c#">public class Sample { public Sample(string theIntAsString) { int i = int.Parse(theIntAsString); _intField = i; } public Sample(int theInt) => _intField = theInt; public int IntProperty => _intField; private readonly int _intField; }</code>
Terdapat dua pembina di sini. Walau bagaimanapun, masalah timbul apabila anda ingin mengelakkan penduaan kod persediaan medan, kerana medan baca sahaja perlu dimulakan dalam pembina.
Nasib baik, ada penyelesaian: gunakan rantaian pembina. Dengan menambah baris berikut dalam pembina hujah rentetan:
<code class="language-c#">public Sample(string str) : this(int.Parse(str)) { }</code>
Anda boleh memanggil pembina parameter integer daripada pembina parameter rentetan. Ini mewakilkan permulaan medan kepada kod sedia ada, menghapuskan keperluan untuk pendua.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengelak Penduaan Kod Apabila Memulakan Medan Baca Sahaja dalam Berbilang Pembina?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!