Heim > Backend-Entwicklung > C++ > Wie lautet die Ausführungsreihenfolge des Konstruktors bei der C#-Vererbung?

Wie lautet die Ausführungsreihenfolge des Konstruktors bei der C#-Vererbung?

DDD
Freigeben: 2025-01-22 23:47:14
Original
257 Leute haben es durchsucht

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

Detaillierte Erläuterung der Ausführungsreihenfolge des C#-Konstruktors

Bei der Definition eines Konstruktors in C# lautet eine Schlüsselfrage: Wird der Konstruktor der aktuellen Klasse vor oder nach dem Aufruf des Basisklassenkonstruktors ausgeführt?

Ausführungsauftrag

Die Ausführungssequenz folgt den folgenden Schritten:

  1. Mitgliedsvariablen aller Klassen in der Vererbungshierarchie werden auf Standardwerte initialisiert.
  2. Beginnen Sie mit der am meisten abgeleiteten Klasse:
    • Führen Sie einen Variableninitialisierer für den am meisten abgeleiteten Typ aus.
    • Die Konstruktorkette bestimmt den aufzurufenden Basisklassenkonstruktor.
    • Initialisieren Sie die Basisklasse (wenden Sie diese Schritte rekursiv an).
    • Konstruktorkörper in der Vererbungskette dieser Klasse werden nacheinander ausgeführt.
  3. Bitte beachten Sie, dass im Gegensatz zu Java die Basisklasse initialisiert wird, nachdem der Variableninitialisierer ausgeführt wurde.

Beispiel

Bedenken Sie die folgende Klassenhierarchie:

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

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

Beim Erstellen einer abgeleiteten Instanz ist die Ausführungssequenz wie folgt:

  1. Weisen Sie den Mitgliedsvariablen von Base und Derived Standardwerte zu.
  2. Führen Sie den Variableninitialisierer von Derived aus und legen Sie seine eigenen Mitgliedsvariablen fest.
  3. Rufen Sie den Basisklassenkonstruktor (Base(int param1)) mit den angegebenen Parametern auf.
  4. Führen Sie den Konstruktorkörper von Derived aus.

Das obige ist der detaillierte Inhalt vonWie lautet die Ausführungsreihenfolge des Konstruktors bei der C#-Vererbung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage