Definieren einer Methode mit einer Schnittstelle als Parameter
In C# richten Schnittstellen einen Vertrag für Klassen ein. In dieser Lektion erfahren Sie, wie Methoden Schnittstellen als Parameter akzeptieren, die Syntax zum Definieren dieser Methoden lernen und eine praktische Beispielimplementierung überprüfen.
Methoden, die eine Schnittstelle akzeptieren
Ihre Methoden in C# können Schnittstellen als Parameter akzeptieren, um sicherzustellen, dass die übergebenen Objekte bestimmten Verträgen entsprechen. Die Verwendung von Schnittstellen als Parameter ermöglicht flexibleren und wiederverwendbaren Code.
Ziehen Sie beispielsweise eine Methode in Betracht, die eine IAnimal Schnittstelle als Parameter akzeptiert:
public interface IAnimal
{
void MakeSound();
}
public void MakeAnimalSound(IAnimal animal)
{
animal.MakeSound();
}
In diesem Beispiel akzeptiert die MakeAnimalSound Methode eine IAnimal Schnittstelle, um sicherzustellen, dass ein objekt, das an sie übergeben wird, über eine MakeSound Methode verfügt.
Hinweis
Die Verwendung von Schnittstellen als Methodenparameter fördert die lose Kopplung und verbessert die Testbarkeit.
Beispiel: Schnittstellen als Methodenparameter
Im folgenden Beispiel haben wir mehrere Dateien, die jeweils eine andere Klasse oder Schnittstelle enthalten. Es ist üblich, Elemente in separaten Dateien zu platzieren, um eine bessere Organisation und Lesbarkeit zu ermöglichen.
IAnimal.cs
Die IAnimal.cs Datei definiert die IAnimal Schnittstelle, die eine Methode MakeSoundenthält.
public interface IAnimal
{
void MakeSound();
}
Dog.cs und Cat.cs
Diese Dateien enthalten die Dog und Cat Klassen, die die IAnimal Schnittstelle implementieren und die MakeSound Methode bereitstellen.
public class Dog : IAnimal
{
public void MakeSound()
{
Console.WriteLine("Woof!");
}
}
public class Cat : IAnimal
{
public void MakeSound()
{
Console.WriteLine("Meow!");
}
}
AnimalSound.cs
Diese Datei enthält die AnimalSound Klasse, die eine Methode MakeAnimalSound enthält, die eine IAnimal Schnittstelle als Parameter akzeptiert und die MakeSound Methode aufruft.
public class AnimalSound
{
public void MakeAnimalSound(IAnimal animal)
{
animal.MakeSound();
}
}
Program.cs
Diese Datei enthält die Program Klasse mit der Main Methode, die Instanzen von Dog und Cat erstellt und die AnimalSound Klasse verwendet, um Töne zu erzeugen.
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!
}
}
In diesem Beispiel wird veranschaulicht, wie Schnittstellen als Methodenparameter verwendet werden können, um die lose Kopplung zu fördern und die Testbarkeit zu verbessern. Es ist eine einfache und dennoch effektive Möglichkeit, das Konzept der Schnittstellen in C# zu verstehen.