Principe d'encapsulation

Résolu
cs_emmanuel9 Messages postés 903 Date d'inscription mercredi 23 février 2005 Statut Membre Dernière intervention 16 juin 2010 - 15 juin 2006 à 15:08
Nikoui Messages postés 794 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 19 août 2008 - 16 juin 2006 à 09:45
Bonjour à tous,

Quand on crée une classe en c# est ce encore d'actualité d'utilisé un accesseur et un mutateur de données pour accéder au champs private de la classe ?

ex :

class personne
{
private string nom ;
public string get_Nom() { return nom ; }
publiv void set_Nom(string nom) {this.nom = nom ; }

}

Par avance, merci

5 réponses

dgouttegattat Messages postés 129 Date d'inscription mardi 22 novembre 2005 Statut Membre Dernière intervention 30 décembre 2007 3
15 juin 2006 à 15:25
Bonjour,

Utiliser des accesseurs et des mutateurs est toujours d'actualité, mais en C# on utilise pour cela des propriétés et non des méthodes. Cela donne quelque chose comme ça :
<hr />class Personne
{
   private string nom;
  
   public string Nom
   {
      get { return nom; }
      set
      {
         // value contient la valeur affectée à la propriété
         nom = value;
      }
}<hr />
Tu peux alors utiliser Nom comme s'il s'agissait d'un champ. Si tu accèdes à ce champ en lecture, le contenu du bloc 'get' sera exécuté. Si tu y accèdes en écriture, ce sera le contenu du bloc 'set'.
3
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
15 juin 2006 à 15:51
Salut,
Je dirais que non seulement c'est encore d'actualité, mais en plus c'est une pratique qui est très recommandée (plus propre et plus sécurisé que de déclarer des champs publics!)

VC# forever
=13319
3
Nikoui Messages postés 794 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 19 août 2008 13
15 juin 2006 à 16:10
Je rejoins Bidou, les variables locales doivent être private (et même pour les variables "protected", il est fortement recommandé de les laisser en private, et de mettre les accesseurs en protected, sachant qu'en .Net2, les accesseurs Get et Set peuvent avoir des "visibilités" différentes) (pas sur que le mot "visibilité soit le bon)
3
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
16 juin 2006 à 01:00
Cà l'est.

Le bon mot.

::|The S@ib|:: MVP C#.NET
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Nikoui Messages postés 794 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 19 août 2008 13
16 juin 2006 à 09:45
Merci j'avais comme un doute :)
0
Rejoignez-nous