Implementieren von Schnittstelleneigenschaften

Abgeschlossen

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 interface Schlü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 : IVehicle Syntax wird verwendet, um anzugeben, dass Car die IVehicle Schnittstelle implementiert. Sie verwenden die vertraute Syntax, die auch für die Vererbung verwendet wird.
  • Das Car muss öffentliche, nicht-statische Implementierungen für alle im IVehicle Blueprint aufgeführten Funktionen bereitstellen.
  • Wenn Car sie 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.