C # lui-même ne prend pas en charge l'héritage multiple (un héritage de classe provient de plusieurs classes parentales). Néanmoins, la simulation de ce modèle dans certains cas est encore très utile.
Utilisez l'interface et la méthode d'expansion pour combiner
plutôt que d'obtenir un héritage multiple, il est préférable d'envisager d'utiliser la combinaison d'interface. Définissez l'interface de la fonction requise et créez une classe qui réalise toutes les interfaces nécessaires. Pour simplifier l'appel de la méthode, les caractéristiques de la méthode d'extension du C # 3.0 peuvent être utilisées.
Cette méthode vous permet de combiner des classes, chaque classe fournit des fonctions spécifiques et les accède à des interfaces simples et intuitives. Par exemple:
Solution basée sur le code-GÉNÉRÉ
<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>
Une autre méthode consiste à utiliser la génération de code pour injecter la classe existante dans la nouvelle classe. Bien que C # ne fournit pas directement cette syntaxe, des outils comme Roslyn ou T4 Text Modèles peuvent favoriser la génération de code, vous permettre de définir la syntaxe personnalisée et de combler l'écart entre l'héritage multiple et les combinaisons.
En utilisant la technologie de la combinaison et de la génération de code, vous pouvez simuler efficacement l'héritage multiple en C # sans introduire la complexité liée à l'héritage multiple réel.Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!