กําหนดวิธีการ ด้วยอินเทอร์เฟซเป็นพารามิเตอร์

เสร็จสมบูรณ์เมื่อ

ใน 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#