Heim >Backend-Entwicklung >C++ >Wie kann mehrere Vererbung in C# simuliert werden und welche Alternativen sind die Alternativen?
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
<code class="language-csharp">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(); } }</code>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
<code class="language-csharp">public class FirstAndSecond : IFirst from First, ISecond from Second { }</code>
Anstatt zu versuchen, mehr Vererbung zu simulieren, ist es besser, eine Kombination zu verwenden. Die Schnittstelle kann die Kombinationsanforderungen definieren:
Vereinfachen Sie die Erweiterungsmethode, umaufzurufen
<code class="language-csharp">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(); } }</code>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!