Implémenter des propriétés d’interface

Terminé

En tant que développeur chargé de créer les interfaces de votre projet, vous démarrez le processus en concevant une interface avec des propriétés. Ensuite, vous développez une classe qui implémente ces propriétés.

Une interface en C# est semblable à un blueprint. Il décrit les fonctionnalités (propriétés ou méthodes) dont les classes doivent avoir si elles souhaitent utiliser cette interface. Pour ce projet, vous définissez une interface qui définit uniquement les propriétés (sans méthodes).

  • Utilisez le interface mot clé pour créer une interface.
  • Définissez des propriétés dans l’interface sans corps.
  • Les interfaces peuvent éventuellement fournir des implémentations par défaut pour les membres, y compris les propriétés, mais elles se produisent rarement.

Le code suivant crée une IVehicle interface avec les propriétés Speed et Color :

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

Les propriétés de l’interface ne contiennent généralement pas de code, elles spécifient simplement le type de données (comme int ou string) et indiquent si vous pouvez les lire, les écrire ou les deux. Lorsque vous implémentez ces propriétés dans une classe, vous allez écrire le code réel pour obtenir (lire) et définir (écrire) les valeurs. Par exemple, si une interface a une Speed propriété, vous allez décider comment stocker et récupérer la valeur de vitesse dans votre classe.

Développer une classe qui implémente l’interface

Quand une classe, comme Car, décide d’implémenter une interface, par IVehicleexemple, c’est comme dire « Je vais construire un véhicule ». Il Car doit inclure toutes les fonctionnalités (propriétés ou méthodes) décrites dans le IVehicle blueprint.

  • La syntaxe Car : IVehicle est utilisée pour indiquer que Car implémente l'interface IVehicle. Vous utilisez la syntaxe familière, identique à celle utilisée pour l’héritage.
  • Les Car implémentations publiques et non statiques doivent être fournies pour toutes les fonctionnalités répertoriées dans le IVehicle blueprint.
  • Si Car décide d’implémenter plusieurs blueprints (interfaces), qui possèdent des caractéristiques similaires, il est nécessaire de préciser quelle caractéristique provient de quel blueprint.

Voici comment Car implémente l'interface IVehicle dans le code :

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

Remarque

Le symbole : est utilisé pour indiquer que Car implémente IVehicle, de la même manière que : est utilisé pour indiquer l'héritage.

Dans cet exemple, Car est une classe qui implémente l’interface IVehicle et fournit ses propres versions de Speed et Color. C’est comme construire un véhicule basé sur le IVehicle blueprint, mais en ajoutant ses propres touches uniques à la vitesse et à la couleur.