Implementare le proprietà dell'interfaccia
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
interfaceparola 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 : IVehiclesintassi viene utilizzata per indicare cheCarsta implementando l'interfacciaIVehicle. Si usa la sintassi familiare, uguale a quella usata per l'ereditarietà. - Il
Cardeve fornire le implementazioni pubbliche e non statiche per tutte le funzionalità elencate nel progettoIVehicle. - Se
Cardecide 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.