cs_emmanuel9
Messages postés903Date d'inscriptionmercredi 23 février 2005StatutMembreDernière intervention16 juin 2010
-
15 juin 2006 à 15:08
Nikoui
Messages postés794Date d'inscriptionvendredi 24 septembre 2004StatutMembreDernière intervention19 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 ; }
dgouttegattat
Messages postés129Date d'inscriptionmardi 22 novembre 2005StatutMembreDernière intervention30 décembre 20073 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'.
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201360 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!)
Nikoui
Messages postés794Date d'inscriptionvendredi 24 septembre 2004StatutMembreDernière intervention19 août 200811 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)