multi -inherition dalam c#: kaedah praktikal
Oleh kerana kerumitan kod berpotensi, C# sendiri tidak menyokong pelbagai warisan (warisan kelas adalah dari pelbagai kelas asas). Walau bagaimanapun, terdapat beberapa kaedah alternatif yang dapat melaksanakan fungsi yang sama dengan berkesan.
warisan
Daripada mensimulasikan pelbagai warisan, lebih baik untuk mempertimbangkan menggunakan gabungan. Tentukan antara muka yang mewakili atribut dan tingkah laku yang diperlukan, dan kemudian gunakan kelas gabungan antara muka ini. Sebagai contoh, antara muka
. ISteerable
SteeringWheel
kaedah lanjutan IBrakable
BrakePedal
untuk menyediakan kaedah seperti dan , seperti yang ditunjukkan dalam contoh kod berikut:
Contoh praktikal ISteerable
IBrakable
SteerLeft()
Memandangkan klien TCP berasaskan teks yang sedia ada (itexttcpClient) digunakan dalam Windows Windows. Terdapat dua kaedah biasa:
Stop()
<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(); } } public static class SteeringExtensions { public static void SteerLeft(this ISteerable vehicle) { vehicle.wheel.SteerLeft(); } } public static class BrakeExtensions { public static void Stop(this IBrakable vehicle) { vehicle.brake.ApplyUntilStop(); } } public class Main { Vehicle myCar = new Vehicle(); public void Main() // 注意这里将main改为了Main { myCar.SteerLeft(); myCar.Stop(); } }</code>
. mewarisi dan mencapai
(tidak disyorkan) dalam beberapa cara.
Component
ITextTcpClient
Dengan menggunakan mod Warisan dan Kaedah Lanjutan Gabungan, anda dapat mensimulasikan Warisan Berbilang dalam C# sambil mengekalkan kesederhanaan dan kebolehbacaan kod. Atas ialah kandungan terperinci Bagaimanakah saya dapat mensimulasikan pelbagai warisan dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!