Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Memanggil Satu Pembina daripada Yang Lain dalam C# untuk Memulakan Medan Baca Sahaja?

Bagaimanakah Saya Boleh Memanggil Satu Pembina daripada Yang Lain dalam C# untuk Memulakan Medan Baca Sahaja?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-12 11:52:43536semak imbas

How Can I Call One Constructor from Another in C# to Initialize Readonly Fields?

Penjalinan Pembina dalam C#: Penyelesaian untuk Permulaan Medan Baca Sahaja

Kadangkala, anda perlu memulakan medan readonly menggunakan berbilang pembina. Memandangkan medan readonly hanya boleh diberikan nilai dalam pembina, hanya menduplikasi logik permulaan merentas pembina adalah tidak cekap dan mudah ralat. C# menawarkan penyelesaian yang bersih: rantaian pembina.

Kuasa this

Penjalinan pembina memanfaatkan kata kunci this untuk memanggil satu pembina daripada yang lain. Ini mengubah hala proses permulaan, menghapuskan kod berlebihan.

Ini contohnya:

<code class="language-csharp">public class Sample
{
    public Sample(string theIntAsString) : this(int.Parse(theIntAsString)) { }

    public Sample(int theInt) => _intField = theInt;
    public int IntProperty => _intField;

    private readonly int _intField;
}</code>

Kelas Sample ini menunjukkan dua pembina. Pembina pertama mengambil rentetan, menghuraikannya menjadi integer, dan kemudian rantai kepada pembina kedua, melepasi integer yang dihuraikan. Pembina kedua secara langsung memulakan medan readonly. Pendekatan ini memastikan logik pemulaan tetap terpusat sambil memberikan fleksibiliti dalam cara kelas dibuat seketika.

Menggunakan rantaian pembina menggalakkan kod yang lebih bersih dan lebih boleh diselenggara dengan mengelakkan logik pemulaan pendua, dengan itu meningkatkan kebolehgunaan semula kod dan mengurangkan risiko ketidakkonsistenan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memanggil Satu Pembina daripada Yang Lain dalam C# untuk Memulakan Medan Baca Sahaja?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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