Incomprehensible !!!!!

Résolu
Mimoza222 Messages postés 14 Date d'inscription lundi 11 juillet 2005 Statut Membre Dernière intervention 23 avril 2008 - 15 sept. 2005 à 13:35
Mimoza222 Messages postés 14 Date d'inscription lundi 11 juillet 2005 Statut Membre Dernière intervention 23 avril 2008 - 15 sept. 2005 à 14:19
Inexplicable :

Vola mon code :

public string Color

{

get

{

return Color;

}

set

{

Color = value;

}

}

accesseur tout con vous serez d'accord et voila l'erreur qu'il me sort :

<error: excepción de tipo; {System.StackOverflowException}>

Apres avoir suivit tout le cheminement au debugger il tourne en boucle sur l' instruction "set"!!!!



Si quelqu'un a une reponse .... j'ai bien regardé sur le net et dans les aide c'est bien la bonne syntaxe, je devient fous !!!



Et j'ai essayé de ne pas mettre les accesseur, donc avoir :

public string Color;

Et ca passe !!!!!

Décidement les mystères de l'informatique sont impénetrable des fois .....

6 réponses

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
15 sept. 2005 à 13:47
en fait tu t'es trompé dans la syntaxe



private string color;

public string Color

{

get

{

return color;

}

set

{

color = value;

}

}


Sébastien FERRAND
3
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
15 sept. 2005 à 13:49
C'est normal, en faisant ca, tu fais appel en boucle a ton accesseur

ce qu'il faut faire, c'est ca :



private string color;



public string Color

{

get { return color; }

set { color = value; }

}



Mx
3
Mimoza222 Messages postés 14 Date d'inscription lundi 11 juillet 2005 Statut Membre Dernière intervention 23 avril 2008
15 sept. 2005 à 14:06
Heuu, merci de vos reponse.

Mais pourquoi avoir mis un c minuscule change quelquechose, ma variable a un c majuscule.

J'avais bien compris qu'il faisait appelle en boucle a mon accesseur mais je ne voyait pas pourquoi.
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
15 sept. 2005 à 14:12
Le but d'un accesseur (Propriété en .net) est de donner des
"droits d'acces" a une variable aux autres classes (via les get et set,
que tu peux modifier a ta guise en y rajoutant des instuctions).

Il te faut donc creer une variable privée (celle avec le c minuscule), et un accesseur a ta variable (avec le c majuscule).

Si tu veux que ta variable soit accessible en lecture et ecriture pour
n'importe qui, alors a ce moment la, tu enleves ton accesseur, et tu
mets ta variable en public

Mx
0

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

Posez votre question
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
15 sept. 2005 à 14:12
c minuscule pour acceder à la variable local à ta classe :



private string color;



et la propriété publique :



public string Color { ... }

Sébastien FERRAND
0
Mimoza222 Messages postés 14 Date d'inscription lundi 11 juillet 2005 Statut Membre Dernière intervention 23 avril 2008
15 sept. 2005 à 14:19
Super merci, j'ai tout compris maintenant. C'est un truc que je ne
savais pas, quand on s'autoforme c'est le risque ..... Merci
encore
0
Rejoignez-nous