c# selbst unterstützt keine Mehrfachvererbung (eine Klassenvererbung stammt aus mehreren übergeordneten Klassen). Trotzdem ist die Simulation dieses Modells in einigen Fällen immer noch sehr nützlich.
Verwenden Sie die Schnittstellen- und Erweiterungsmethode, um
zu kombinieren , anstatt mehrere Vererbung zu erreichen, ist es besser, die Schnittstellenkombination zu verwenden. Definieren Sie die Schnittstelle für die erforderliche Funktion und erstellen Sie eine Klasse, die alle erforderlichen Schnittstellen erreicht. Um den Methodenaufruf zu vereinfachen, können die Merkmale der Expansionsmethode des C# 3.0 verwendet werden.
Mit dieser Methode können Sie Klassen kombinieren. Jede Klasse bietet spezifische Funktionen und greift auf sie über einfache und intuitive Schnittstellen zu. Zum Beispiel:
Lösung basierend auf dem Code -generierten
<code class="language-csharp">public interface ISteerable { SteeringWheel wheel { get; set; } } public interface IBrakable { BrakePedal brake { get; set; } } public class Vehicle : ISteerable, IBrakable { ... } public static class SteeringExtensions { ... } public static class BrakeExtensions { ... } ... Vehicle myCar = new Vehicle(); myCar.SteerLeft(); myCar.Stop();</code>
Eine andere Methode besteht darin, die Codegenerierung zu verwenden, um die vorhandene Klasse in die neue Klasse zu injizieren. Obwohl C# diese Syntax nicht direkt zur Verfügung stellt, können Tools wie Roslyn oder T4 -Textvorlagen die Codeerzeugung fördern. Ermöglichen Sie, die benutzerdefinierte Syntax zu definieren und die Lücke zwischen mehreren Vererbung und Kombinationen zu überbrücken.
Durch die Verwendung von Kombinations- und Codegenerierungstechnologie können Sie die mehrfache Vererbung in C# effektiv simulieren, ohne die Komplexität im Zusammenhang mit der tatsächlichen Mehrfachvererbung einzuführen.Das obige ist der detaillierte Inhalt vonWie kann mehrere Vererbung in C#simuliert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!