Aller au contenu principal
Publié le

Les propriétés en C#

Partager :

Introduction

En C#, comme dans de nombreux langages de programmation orientés objet, l'encapsulation est une pratique fondamentale. Elle favorise la protection et l'intégrité des données en restreignant l'accès direct à celles-ci. Les propriétés jouent un rôle crucial à cet égard.

Que sont les Propriétés ?

Une propriété est un membre d'une classe qui fournit un mécanisme pour obtenir ou définir la valeur d'un champ interne. Au lieu d'accéder directement au champ, on peut utiliser des propriétés pour interagir avec lui, en garantissant que toute logique associée à la lecture ou à l'écriture du champ est respectée.

Avantages des Propriétés

  1. Encapsulation : Les propriétés aident à protéger les données en empêchant qu'elles soient modifiées de manière indésirable.
  2. Validation : Avant d'affecter une valeur, on peut s'assurer qu'elle se situe dans un certain intervalle ou qu'elle satisfait d'autres conditions.
  3. Représentation Calculée : Les propriétés peuvent retourner une valeur calculée plutôt qu'une valeur stockée.

Approfondissement de get et set

  • get : Cet accesseur est utilisé lorsque la valeur de la propriété est lue. On peut ajouter une logique supplémentaire, comme des calculs ou des transformations, avant de retourner la valeur.
  • set : Cet accesseur entre en jeu lorsqu'on tente de modifier la valeur de la propriété. C'est ici que se produit la validation ou toute autre logique liée à la modification de la valeur.

Propriétés en Lecture Seule et en Écriture Seule

  • Lecture Seule : Une propriété qui définit uniquement l'accesseur get.
  • Écriture Seule : Bien que rares, ce sont des propriétés qui définissent uniquement l'accesseur set.

Exemples Avancés

Au-delà de l'exemple de base, explorons un peu plus :

public class Cercle {
  private double rayon;

  public double Rayon {
    get { return rayon; }
    set {
      if (value < 0)
        rayon = 0;
      else
        rayon = value;
    }
  }

  // Propriété en lecture seule
  public double Aire {
    get {
      return Math.PI * rayon * rayon;
    }
  }
}

Dans cet exemple, nous avons une classe Cercle qui possède une propriété Rayon et une propriété en lecture seule Aire. Le Rayon ne peut pas être négatif, et l'Aire est calculée en fonction du Rayon.

Conclusion

L'utilisation correcte des propriétés en C# est essentielle pour garantir que les données soient manipulées de manière sûre et contrôlée. Elles offrent une façon structurée d'interagir avec les champs d'une classe, en maintenant l'intégrité des données et en offrant de la flexibilité dans l'implémentation.

Happy coding!