Definování metody s rozhraním jako parametrem

Dokončeno

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#.