Implementare le proprietà dell'interfaccia

Completato

Gli sviluppatori che hanno l'incarico di creare le interfacce del progetto iniziano il processo progettando un'interfaccia con le proprietà. Si sviluppa quindi una classe che implementa queste proprietà.

Un'interfaccia in C# è simile a un progetto. Descrive le funzionalità (proprietà o metodi) che le classi devono avere se vogliono usare questa interfaccia. Per questo progetto si definisce un'interfaccia che definisce solo le proprietà (senza metodi).

  • Usare la interface parola chiave per creare un'interfaccia.
  • Definire le proprietà nell'interfaccia senza un corpo.
  • Le interfacce possono facoltativamente fornire implementazioni predefinite per i membri, incluse le proprietà, ma accade raramente.

Il codice seguente crea un'interfaccia IVehicle con le proprietà Speed e Color.

public interface IVehicle
{
    int Speed { get; set; }
    string Color { get; set; }
}

Le proprietà dell'interfaccia in genere non contengono codice, ma specificano solo il tipo di dati (ad esempio int o string) e se è possibile leggerle, scriverle o eseguire entrambe le operazioni. Quando si implementano queste proprietà in una classe, si scriverà il codice effettivo per ottenere (leggere) e impostare (scrittura) i valori. Ad esempio, se un'interfaccia ha una Speed proprietà, si deciderà come archiviare e recuperare il valore di velocità nella classe.

Sviluppare una classe che implementa l'interfaccia

Quando una classe, ad esempio Car, decide di implementare un'interfaccia, ad esempio IVehicle, è come dire "Sto per costruire un veicolo". Car Deve includere tutte le funzionalità (proprietà o metodi) descritte nel IVehicle progetto.

  • La Car : IVehicle sintassi viene utilizzata per indicare che Car sta implementando l'interfaccia IVehicle . Si usa la sintassi familiare, uguale a quella usata per l'ereditarietà.
  • Il Car deve fornire le implementazioni pubbliche e non statiche per tutte le funzionalità elencate nel progetto IVehicle.
  • Se Car decide di implementare più progetti (interfacce) con funzionalità simili, deve essere chiaro quale funzionalità proviene dal progetto.

Ecco come Car implementa l'interfaccia IVehicle nel codice:

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; }
    }
}

Annotazioni

Il : simbolo viene usato per indicare che Car implementa IVehicle, in modo analogo a come : viene usato per indicare l'ereditarietà.

In questo esempio è Car una classe che implementa l'interfaccia IVehicle e fornisce le proprie versioni di Speed e Color. È come creare un veicolo basato sul IVehicle progetto, ma aggiungendo un tocco unico alla velocità e al colore.