Definování metody s rozhraním jako parametrem
V jazyce C# rozhraní vytvářejí kontrakt pro třídy. V této lekci prozkoumáte, jak metody přijímají rozhraní jako parametry, naučíte se syntaxi pro definování těchto metod a zkontrolujete praktickou ukázkovou implementaci.
Metody, které přijímají rozhraní
Vaše metody v jazyce C# mohou přijímat rozhraní jako parametry, aby se zajistilo, že předané objekty dodržují konkrétní kontrakty. Použití rozhraní jako parametrů umožňuje flexibilnější a opakovaně použitelný kód.
Představte si například metodu, která přijímá IAnimal rozhraní jako parametr:
public interface IAnimal
{
void MakeSound();
}
public void MakeAnimalSound(IAnimal animal)
{
animal.MakeSound();
}
V tomto příkladu MakeAnimalSound metoda přijímá IAnimal rozhraní a zajišťuje, že každý objekt předaný do něj má metodu MakeSound .
Poznámka:
Použití rozhraní jako parametrů metody podporuje volné párování a zvyšuje testovatelnost.
Příklad: rozhraní jako parametry metody
V následujícím příkladu máme několik souborů, které obsahují jinou třídu nebo rozhraní. Pro lepší organizaci a čitelnost je běžné umístit položky do samostatných souborů.
IAnimal.cs
Soubor IAnimal.cs definuje IAnimal rozhraní, které zahrnuje metodu MakeSound.
public interface IAnimal
{
void MakeSound();
}
Dog.cs a Cat.cs
Tyto soubory obsahují třídy Dog a Cat, které implementují IAnimal rozhraní, a poskytují metodu MakeSound.
public class Dog : IAnimal
{
public void MakeSound()
{
Console.WriteLine("Woof!");
}
}
public class Cat : IAnimal
{
public void MakeSound()
{
Console.WriteLine("Meow!");
}
}
AnimalSound.cs
Tento soubor obsahuje AnimalSound třídu, která má metodu MakeAnimalSound , která přijímá IAnimal rozhraní jako parametr a volá metodu MakeSound .
public class AnimalSound
{
public void MakeAnimalSound(IAnimal animal)
{
animal.MakeSound();
}
}
Program.cs
Tento soubor obsahuje Program třídu s metodou Main , která vytváří instance Dog a Cata používá AnimalSound třídu k vytváření zvuků.
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!
}
}
Tento příklad ukazuje, jak lze rozhraní používat jako parametry metody, podporovat volné párování a zvýšit testovatelnost. Je to jednoduchý, ale efektivní způsob, jak porozumět konceptu rozhraní v jazyce C#.