の多重継承をシミュレートします c#自体は複数の継承をサポートしていません(クラスの継承は複数の親クラスからのものです)。それにもかかわらず、場合によってはこのモデルのシミュレーションは依然として非常に便利です。
インターフェイスと拡張手法を使用して
複数の継承を達成するよりも、インターフェイスの組み合わせを使用することを検討することをお勧めします。必要な関数のインターフェイスを定義し、必要なすべてのインターフェイスを実現するクラスを作成します。メソッド呼び出しを簡素化するために、C#3.0の拡張方法特性を使用できます。
この方法では、クラスを組み合わせることができ、各クラスは特定の機能を提供し、シンプルで直感的なインターフェイスを介してアクセスできます。たとえば、コードに基づいた
ソリューション
<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>
別の方法は、コード生成を使用して既存のクラスを新しいクラスに挿入することです。 C#はこの構文を直接提供していませんが、RoslynやT4テキストテンプレートなどのツールはコード生成を促進できます。カスタム構文を定義し、複数の継承と組み合わせの間のギャップを埋めることができます。
組み合わせとコード生成テクノロジーを使用することにより、実際の多重継承に関連する複雑さを導入することなく、C#の多重継承を効果的にシミュレートできます。以上がC#で複数の継承をどのようにシミュレートできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。