C# Benutzeroberfläche
Eine Schnittstelle definiert einen syntaktischen Vertrag, den alle Klassen beim Erben der Schnittstelle befolgen sollten. Eine Schnittstelle definiert einen syntaktischen Vertrag."Was ist es"Zum Teil definieren abgeleitete Klassen den Syntaxvertrag"Wie man es macht"Teil.
Eine Schnittstelle definiert Eigenschaften, Methoden und Ereignisse, die alle Mitglieder der Schnittstelle sind. Die Schnittstelle enthält nur Deklarationen von Mitgliedern. Die Definition von Mitgliedern liegt in der Verantwortung abgeleiteter Klassen. Die Schnittstelle bietet eine Standardstruktur, die abgeleitete Klassen befolgen sollten.
Eine Schnittstelle sorgt dafür, dass die Klassen oder Strukturen, die sie implementieren, in ihrer Form einheitlich sind.
Abstrakte Klassen sind den Schnittstellen etwas ähnlich, werden aber meist nur verwendet, wenn einige Methoden von der Basisklasse deklariert und von abgeleiteten Klassen implementiert werden.
Die Schnittstelle selbst implementiert keine Funktionalität; sie stellt lediglich einen Vertrag mit dem Objekt her, das angibt, die Schnittstelle zu implementieren, und legt fest, welche Verhaltensweisen implementiert werden müssen.
Abstrakte Klassen können nicht direkt instanziiert werden, aber sie ermöglichen die Ableitung konkreter Klassen mit tatsächlicher Funktionalität.
Schnittstelle definieren: MyInterface.cs
Verwendung von SchnittstelleninterfaceSchlüsselwortdeklaration, die der Klassendeklaration ähnelt. Schnittstellendeklarationen sind standardmäßig öffentlich. Das Folgende ist ein Beispiel für eine Schnittstellendeklaration:
{
void MethodToImplement();
}
Der obige Code definiert die Schnittstelle IMyInterface. Üblicherweise beginnen Schnittstellennamen mitIdem Buchstaben I. Diese Schnittstelle hat nur eine Methode, MethodToImplement(), ohne Parameter und ohne Rückgabewert. Natürlich können wir Parameter und Rückgabewerte nach Bedarf festlegen.
Es ist erwähnenswert, dass diese Methode keine konkrete Implementierung hat.
Als Nächstes implementieren wir die obige Schnittstelle: InterfaceImplementer.cs
Beispiel
interface IMyInterface
{
// Schnittstellenmember
void MethodToImplement();
}
class InterfaceImplementer : IMyInterface
{
static void Main()
{
InterfaceImplementer iImp = new InterfaceImplementer();
iImp.MethodToImplement();
}
public void MethodToImplement()
{
Console.WriteLine("MethodToImplement() aufgerufen.");
}
}
Die Klasse InterfaceImplementer implementiert die Schnittstelle IMyInterface. Das Implementieren einer Schnittstelle ähnelt syntaktisch der Klassenvererbung:
class InterfaceImplementer : IMyInterface
Nach dem Erben der Schnittstelle müssen wir die Methode MethodToImplement() der Schnittstelle implementieren. Der Methodenname muss mit dem in der Schnittstelle definierten Methodennamen übereinstimmen.
Schnittstellenvererbung: InterfaceInheritance.cs
Das folgende Beispiel definiert zwei Schnittstellen, IMyInterface und IParentInterface.
Wenn eine Schnittstelle von anderen Schnittstellen erbt, muss die implementierende Klasse oder Struktur alle Member der Schnittstellen implementieren.
Im folgenden Beispiel erbt IMyInterface die Schnittstelle IParentInterface; daher muss die Schnittstellenimplementierungsklasse die Methoden MethodToImplement() und ParentInterfaceMethod() implementieren:
Beispiel
interface IParentInterface
{
void ParentInterfaceMethod();
}
interface IMyInterface : IParentInterface
{
void MethodToImplement();
}
class InterfaceImplementer : IMyInterface
{
static void Main()
{
InterfaceImplementer iImp = new InterfaceImplementer();
iImp.MethodToImplement();
iImp.ParentInterfaceMethod();
}
public void MethodToImplement()
{
Console.WriteLine("MethodToImplement() aufgerufen.");
}
public void ParentInterfaceMethod()
{
Console.WriteLine("ParentInterfaceMethod() called.");
}
}
Das Beispiel-Ausgabeergebnis ist:
MethodToImplement() called. ParentInterfaceMethod() called.Weitere Erweiterungen