Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah antara muka berfungsi dalam C#?

Bagaimanakah antara muka berfungsi dalam C#?

WBOY
WBOYke hadapan
2023-08-28 22:21:06564semak imbas

C# 中的接口如何工作?

Antara muka mentakrifkan kontrak yang akan dilaksanakan oleh kelas atau struktur. Ia boleh mengandungi kaedah, sifat, peristiwa dan pengindeks. Antara muka adalah serupa dengan kelas, kecuali ia tidak menyimpan sebarang data dan hanya menentukan tingkah laku yang boleh dilakukannya (atau, lebih tepat lagi, tingkah laku yang boleh dilakukan oleh kelas yang melaksanakannya).

Sesuatu kelas boleh melaksanakan tingkah laku atau lebih banyak antara muka. Untuk melaksanakan ahli antara muka, kelas harus mempunyai ahli awam dengan definisi kaedah yang sama seperti ahli antara muka, iaitu nama dan tandatangan yang sama.

Sebagai contoh, IComparer ialah antara muka yang ditakrifkan dalam ruang nama System.Collections yang mentakrifkan kontrak untuk kaedah membandingkan dua objek. Kelas Kereta melaksanakan antara muka IComparer

public interface IDriver{
   void Drive();
}
public class Car : IDriver{
   public string Name { get; set; }

   public int Speed { get; set; }
   public void Drive(){
      Console.WriteLine($"{Name}: {Speed}");
   }
}

Semua ahli pada antara muka adalah abstrak secara tersirat dan tidak mempunyai sebarang butiran pelaksanaan. Semua ahli antara muka adalah awam. Pengubah suai akses tidak boleh digunakan dengan ahli antara muka. Kelas yang melaksanakan antara muka mesti menyediakan kaedah awam yang melaksanakan antara muka.

Antara muka boleh memanjangkan antara muka lain, cth. -

public interface IPerformer { void Perform(); }
public interface ISinger : IPerformer{
   void Sing();
}

Antara muka membolehkan anda memasukkan gelagat daripada berbilang sumber dalam satu kelas. Memandangkan C# tidak membenarkan berbilang warisan seperti C++, antara muka ialah cara untuk melaksanakan berbilang warisan dalam C#.

Satu kelemahan antara muka ialah ia kurang fleksibel berbanding kelas apabila anda menggunakannya untuk mendedahkan API. Apabila anda menukar kontrak antara muka, semua kelas yang melaksanakan pemecahan antara muka dan perlu dikemas kini untuk melaksanakan antara muka.

Contoh

Demonstrasi masa nyata

using System;
class Program{
   static void Main(){
      var carOne = new Car { Name = "Honda", Speed = 100 };
      var carTwo = new Car { Name = "Toyota", Speed = 70 };
      carOne.Drive();
      carTwo.Drive();
   }
}
public interface IDriver{
   void Drive();
}
public class Car : IDriver{
   public string Name { get; set; }
   public int Speed { get; set; }
   public void Drive(){
      Console.WriteLine($"{Name}: {Speed}");
   }
}

Output

Honda: 100
Toyota: 70

Atas ialah kandungan terperinci Bagaimanakah antara muka berfungsi dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam