กําหนดวิธีการ ด้วยอินเทอร์เฟซเป็นพารามิเตอร์
ใน C# อินเทอร์เฟซจะสร้างสัญญาสําหรับคลาส ในหน่วยนี้ คุณสํารวจว่าวิธีการยอมรับอินเทอร์เฟสเป็นพารามิเตอร์อย่างไร เรียนรู้ไวยากรณ์สําหรับการกําหนดวิธีการเหล่านี้ และตรวจทานการใช้งานตัวอย่างในทางปฏิบัติ
วิธีการที่ยอมรับอินเทอร์เฟซ
วิธีการของคุณใน C# สามารถยอมรับอินเทอร์เฟซเป็นพารามิเตอร์เพื่อให้แน่ใจว่าวัตถุที่ส่งผ่านเป็นไปตามสัญญาที่เฉพาะเจาะจง การใช้อินเทอร์เฟซเป็นพารามิเตอร์ช่วยให้มีความยืดหยุ่นและสามารถนําโค้ดกลับมาใช้ใหม่ได้
ตัวอย่างเช่น พิจารณาวิธีการที่ยอมรับ IAnimal อินเทอร์เฟซเป็นพารามิเตอร์:
public interface IAnimal
{
void MakeSound();
}
public void MakeAnimalSound(IAnimal animal)
{
animal.MakeSound();
}
ในตัวอย่างนี้ วิธีการ จะ MakeAnimalSound ยอมรับ IAnimal อินเทอร์เฟซ เพื่อให้แน่ใจว่าวัตถุใด ๆ ที่ส่งผ่านไปยังอินเทอร์เฟซมี MakeSound เมธอด
หมายเหตุ
การใช้อินเทอร์เฟซเป็นพารามิเตอร์เมธอดช่วยส่งเสริมการมีเพศสัมพันธ์ที่หลวมและเพิ่มความสามารถในการทดสอบ
ตัวอย่าง: อินเทอร์เฟซเป็นพารามิเตอร์เมธอด
ในตัวอย่างต่อไปนี้เรามีหลายไฟล์แต่ละไฟล์ที่ประกอบด้วยคลาสหรืออินเทอร์เฟซที่แตกต่างกัน เป็นเรื่องปกติที่จะวางรายการในไฟล์แยกต่างหากเพื่อให้องค์กรและความสามารถในการอ่านง่ายขึ้น
IAnimal.cs
ไฟล์ IAnimal.cs จะกําหนดIAnimalอินเทอร์เฟซ ซึ่งรวมถึงเมธอดMakeSound
public interface IAnimal
{
void MakeSound();
}
Dog.cs และ Cat.cs
ไฟล์เหล่านี้ประกอบด้วย Dog คลาส และ Cat ซึ่งใช้ IAnimal อินเทอร์เฟซและให้ MakeSound วิธีการ
public class Dog : IAnimal
{
public void MakeSound()
{
Console.WriteLine("Woof!");
}
}
public class Cat : IAnimal
{
public void MakeSound()
{
Console.WriteLine("Meow!");
}
}
AnimalSound.cs
ไฟล์นี้ประกอบด้วย AnimalSound คลาส ซึ่งมีเมธอด MakeAnimalSound ที่ยอมรับ IAnimal อินเทอร์เฟซเป็นพารามิเตอร์และเรียกใช้ MakeSound เมธอด
public class AnimalSound
{
public void MakeAnimalSound(IAnimal animal)
{
animal.MakeSound();
}
}
Program.cs
ไฟล์นี้ประกอบด้วย Program คลาส ที่มี Main เมธอด ซึ่งสร้างอินสแตนซ์ของ Dog และ Catและใช้ AnimalSound คลาส เพื่อสร้างเสียง
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!
}
}
ตัวอย่างนี้สาธิตวิธีการใช้อินเทอร์เฟซเป็นพารามิเตอร์เมธอด ส่งเสริมการมีเพศสัมพันธ์แบบหลวม และการปรับปรุงความสามารถในการทดสอบ ซึ่งเป็นวิธีง่ายๆ ที่มีประสิทธิภาพในการทําความเข้าใจแนวคิดของอินเทอร์เฟซใน C#