Rumah >pembangunan bahagian belakang >C++ >Apakah Perintah Pelaksanaan Pembina dalam Warisan C#?

Apakah Perintah Pelaksanaan Pembina dalam Warisan C#?

DDD
DDDasal
2025-01-22 23:47:14261semak imbas

What's the Constructor Execution Order in C# Inheritance?

Penjelasan terperinci tentang perintah pelaksanaan pembina C#

Apabila mentakrifkan pembina dalam C#, soalan utama ialah: Adakah pembina kelas semasa dilaksanakan sebelum atau selepas memanggil pembina kelas asas?

Perintah pelaksanaan

Jujukan pelaksanaan mengikut langkah berikut:

  1. Pembolehubah ahli semua kelas dalam hierarki warisan dimulakan kepada nilai lalai.
  2. Mulakan dengan kelas terbitan yang paling banyak:
    • Laksanakan pemula pembolehubah untuk jenis terbitan yang paling banyak.
    • Rantai pembina menentukan pembina kelas asas untuk dipanggil.
    • Mulakan kelas asas (gunakan langkah ini secara rekursif).
    • Badan pembina dalam rantaian warisan kelas ini dilaksanakan secara berurutan.
  3. Sila ambil perhatian bahawa tidak seperti Java, kelas asas dimulakan selepas pemula pembolehubah dilaksanakan.

Contoh

Pertimbangkan hierarki kelas berikut:

<code class="language-csharp">class Base
{
    public Base(int param1)
    {
        // 构造函数主体
    }
}

class Derived : Base
{
    public Derived(int param1, int param2) : base(param1)
    {
        // 构造函数主体
    }
}</code>

Apabila mencipta tika Terbitan, urutan pelaksanaan adalah seperti berikut:

  1. Tetapkan nilai lalai kepada pembolehubah ahli Base dan Derived.
  2. Laksanakan pemula pembolehubah Derived dan tetapkan pembolehubah ahlinya sendiri.
  3. Panggil pembina kelas asas (Base(int param1)) dengan parameter yang ditentukan.
  4. Laksanakan badan pembina Derived.

Atas ialah kandungan terperinci Apakah Perintah Pelaksanaan Pembina dalam Warisan C#?. 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