Implementieren von Schnittstelleneigenschaften
Als Entwickler, der mit dem Erstellen der Schnittstellen Ihres Projekts beauftragt wurde, beginnen Sie mit dem Prozess, indem Sie eine Schnittstelle mit Eigenschaften entwerfen. Anschließend entwickeln Sie eine Klasse, die diese Eigenschaften implementiert.
Eine Schnittstelle in C# ist wie eine Blaupause. Sie beschreibt die Features (Eigenschaften oder Methoden), über die Klassen verfügen müssen, wenn sie diese Schnittstelle verwenden möchten. Für dieses Projekt definieren Sie eine Schnittstelle, die nur Eigenschaften definiert (ohne Methoden).
- Verwenden Sie das
interfaceSchlüsselwort, um eine Schnittstelle zu erstellen. - Definieren Sie Eigenschaften in der Schnittstelle ohne Körper.
- Schnittstellen können optional Standardimplementierungen für Member bereitstellen, einschließlich Eigenschaften, was jedoch selten vorkommt.
Der folgende Code erstellt eine IVehicle Schnittstelle mit Speed und Color Eigenschaften:
public interface IVehicle
{
int Speed { get; set; }
string Color { get; set; }
}
Schnittstelleneigenschaften enthalten in der Regel keinen Code, sie geben einfach den Typ der Daten an (z int . B. oder string) und ob Sie aus ihnen lesen, in sie schreiben oder beides ausführen können. Wenn Sie diese Eigenschaften in einer Klasse implementieren, schreiben Sie den tatsächlichen Code zum Abrufen (Lesen) und Festlegen (Schreiben) der Werte. Wenn beispielsweise eine Schnittstelle über eine Speed Eigenschaft verfügt, entscheiden Sie, wie der Geschwindigkeitswert in Ihrer Klasse gespeichert und abgerufen werden soll.
Entwickeln einer Klasse, die die Schnittstelle implementiert
Wenn eine Klasse wie Car entscheidet, eine Schnittstelle zu implementieren, wie IVehicle, ist es so, als würde sie sagen: "Ich werde ein Fahrzeug bauen." Das Car muss alle Funktionen (Eigenschaften oder Methoden) enthalten, die im IVehicle-Blueprint beschrieben sind.
- Die
Car : IVehicleSyntax wird verwendet, um anzugeben, dassCardieIVehicleSchnittstelle implementiert. Sie verwenden die vertraute Syntax, die auch für die Vererbung verwendet wird. - Das
Carmuss öffentliche, nicht-statische Implementierungen für alle imIVehicleBlueprint aufgeführten Funktionen bereitstellen. - Wenn
Carsie sich für die Implementierung mehrerer Blueprints (Schnittstellen) mit ähnlichen Features entscheiden, muss klar sein, welches Feature von welchem Blueprint stammt.
Car So wird die IVehicle Schnittstelle im Code implementiert:
public class Car : IVehicle
{
private int _speed;
private string _color;
public int Speed
{
get { return _speed; }
set { _speed = value; }
}
public string Color
{
get { return _color; }
set { _color = value; }
}
}
Hinweis
Das :-Symbol wird verwendet, um anzuzeigen, dass CarIVehicle implementiert, ähnlich wie : zur Anzeige der Vererbung verwendet wird.
In diesem Beispiel handelt es sich um eine Klasse, Car die die IVehicle Schnittstelle implementiert und eigene Versionen von Speed und Colorbereitstellt. Es ist wie das Bauen eines Fahrzeugs basierend auf dem IVehicle Bauplan, aber verleiht ihm seine eigenen, einzigartigen Akzente in Bezug auf Geschwindigkeit und Farbe.