EmacLi
Messages postés165Date d'inscriptionjeudi 3 novembre 2005StatutMembreDernière intervention 1 février 2013
-
13 nov. 2006 à 16:29
EmacLi
Messages postés165Date d'inscriptionjeudi 3 novembre 2005StatutMembreDernière intervention 1 février 2013
-
14 nov. 2006 à 10:06
Bonsoir à tous !
Voila j'ai un petit soucis :
J'ai deux classe (classe A, classe B). La classe B contient une instance de la classe A parmis ses propriétés.
J'ai donc cherché un moyen, pour une raison Y, d'accéder aux attributs privées de la classe A part l'intermediaire de la classe B.
Et il se trouve que j'en ai trouvé un !
Ma classe B est déclaré dans ma classe A et la j'accède directement à tous les attributs privées de la classe A par la B.
Mes questions sont les suivantes :
Cette manière de coder est elle "PROPRE" ? Et il y a t'il des recommandations à respecter ?
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 13 nov. 2006 à 17:06
Salut, ça s'appelle une classe imbriquée, c'est souvent très pratique.. Tu peux donner à B le modificateur d'accès private si tu veux pas qu'elle soit visible en dehors de A.
leprov
Messages postés1160Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention21 octobre 201017 13 nov. 2006 à 21:36
autre solution : tu crées des accesseurs internal...
exemple :
class A
{
private int int1, int2, int3;
//les int1 et int2 sont internes a classeA, mais classeB doit pouvoir accéder a int3 qui pourtant doit etre private pour d'autres classes
public int MonInt
{
get
{
return int3;
}
internal set
{
int3 = value;
}
}
}
toutes les classes dans le meme assembly que classeA peuvent modifier int3.
toutes les classes qui accedent au programme peuvent accéder a int3 en lecture seule.
apres tu peux moduler comme tu veux pour faire int3 internal directement, etc...
quoi qu'il en soit, il n'est pas propre d'acceder a une variable directement sans utiliser un getter/setter