Menentukan metode dengan antarmuka sebagai parameter
Di C#, antarmuka membuat kontrak untuk kelas. Dalam unit ini, Anda mengeksplorasi bagaimana metode menerima antarmuka sebagai parameter, mempelajari sintaks untuk menentukan metode ini, dan meninjau implementasi sampel praktis.
Metode yang menerima antarmuka
Metode Anda di C# dapat menerima antarmuka sebagai parameter untuk memastikan bahwa objek yang diteruskan mematuhi kontrak tertentu. Menggunakan antarmuka sebagai parameter memungkinkan kode yang lebih fleksibel dan dapat digunakan kembali.
Misalnya, pertimbangkan metode yang menerima IAnimal antarmuka sebagai parameter:
public interface IAnimal
{
void MakeSound();
}
public void MakeAnimalSound(IAnimal animal)
{
animal.MakeSound();
}
Dalam contoh ini, metode MakeAnimalSound menerima antarmuka IAnimal, memastikan bahwa objek apa pun yang diteruskan kepadanya memiliki metode MakeSound.
Nota
Menggunakan antarmuka sebagai parameter metode memungkinkan keterhubungan longgar dan meningkatkan pengujian.
Contoh: antarmuka sebagai parameter metode
Dalam contoh berikut, kami memiliki beberapa file yang masing-masing berisi kelas atau antarmuka yang berbeda. Adalah umum untuk menempatkan item dalam file terpisah untuk organisasi dan keterbacaan yang lebih baik.
IAnimal.cs
File IAnimal.cs mendefinisikan IAnimal antarmuka, yang mencakup metode MakeSound.
public interface IAnimal
{
void MakeSound();
}
Dog.cs dan Cat.cs
File-file ini berisi Dog kelas dan Cat , yang mengimplementasikan IAnimal antarmuka dan menyediakan MakeSound metode .
public class Dog : IAnimal
{
public void MakeSound()
{
Console.WriteLine("Woof!");
}
}
public class Cat : IAnimal
{
public void MakeSound()
{
Console.WriteLine("Meow!");
}
}
AnimalSound.cs
File ini berisi AnimalSound kelas , yang memiliki metode MakeAnimalSound yang menerima IAnimal antarmuka sebagai parameter dan memanggil MakeSound metode .
public class AnimalSound
{
public void MakeAnimalSound(IAnimal animal)
{
animal.MakeSound();
}
}
Program.cs
File ini berisi kelas Program dengan metode Main, yang membuat instans Dog dan Cat, dan menggunakan kelas AnimalSound untuk membuatnya menghasilkan suara.
public class Program
{
public static void Main()
{
IAnimal dog = new Dog();
IAnimal cat = new Cat();
AnimalSound animalSound = new AnimalSound();
animalSound.MakeAnimalSound(dog); // Output: Woof!
animalSound.MakeAnimalSound(cat); // Output: Meow!
}
}
Contoh ini menunjukkan bagaimana antarmuka dapat digunakan sebagai parameter metode, mempromosikan kopling longgar dan meningkatkan uji coba. Ini adalah cara sederhana namun efektif untuk memahami konsep antarmuka di C#.