Heim > Backend-Entwicklung > C++ > Wie kann mehrere Vererbung in C# simuliert werden und welche Alternativen sind die Alternativen?

Wie kann mehrere Vererbung in C# simuliert werden und welche Alternativen sind die Alternativen?

Mary-Kate Olsen
Freigeben: 2025-01-29 20:51:10
Original
677 Leute haben es durchsucht

How Can Multiple Inheritance Be Simulated in C# and What Are the Alternatives?

Multiple Vererbungssimulation in C#

Multi -Inheritanz (eine Klasse erbt aus mehreren übergeordneten Kategorien) wird normalerweise als komplex und leicht zu fehlern angesehen. In einigen Fällen kann dies jedoch von Vorteil sein.

Verwenden Sie die Schnittstelle, um mehr Vererbung

zu simulieren c# unterstützt nicht mehr Vererbung, kann aber verwendet werden, um sie zu simulieren. Das Folgende ist ein Beispiel:

ist jedoch der Nachteil dieser Simulationsmethode, dass alle Schnittstellenänderungen
public interface IFirst { void FirstMethod(); }
public interface ISecond { void SecondMethod(); }

public class First : IFirst { public void FirstMethod() { Console.WriteLine("First"); } }
public class Second : ISecond { public void SecondMethod() { Console.WriteLine("Second"); } }
public class FirstAndSecond : IFirst, ISecond {
    First first = new First();
    Second second = new Second();
    public void FirstMethod() { first.FirstMethod(); }
    public void SecondMethod() { second.SecondMethod(); }
}
Nach dem Login kopieren
geändert werden müssen.

FirstAndSecond <码> Codegenerierungsmethode

Im Idealfall sollte es eine Möglichkeit geben, automatisch eine Kombination mehrerer vorhandener Klassen zu generieren. Dies kann mithilfe der Codegenerierung oder fiktiven C# -Syntax implementiert werden, wie unten gezeigt:

<合> Kombination alternativ

public class FirstAndSecond : IFirst from First, ISecond from Second { }
Nach dem Login kopieren

Anstatt zu versuchen, mehr Vererbung zu simulieren, ist es besser, eine Kombination zu verwenden. Die Schnittstelle kann die Kombinationsanforderungen definieren:

<> Vereinfachen Sie die Erweiterungsmethode, um

aufzurufen
public interface ISteerable { SteeringWheel wheel { get; set; } }
public interface IBrakable { BrakePedal brake { get; set; } }

public class Vehicle : ISteerable, IBrakable {
    public SteeringWheel wheel { get; set; }
    public BrakePedal brake { get; set; }
    public Vehicle() { wheel = new SteeringWheel(); brake = new BrakePedal(); }
}
Nach dem Login kopieren
Erweiterungsmethode (in C# 3.0 eingeführt) kann die Methode der versteckten Attribute weiter vereinfachen:

im Vergleich zur Simulation Multipler Vererbung bietet diese Alternative eine klarere und flexiblere Methode.

Das obige ist der detaillierte Inhalt vonWie kann mehrere Vererbung in C# simuliert werden und welche Alternativen sind die Alternativen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage