使用介面做為參數定義方法
在 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# 中介面概念的簡單但有效的方法。