Boucle infine en C#

Résolu/Fermé
zeOoo Messages postés 29 Date d'inscription vendredi 20 février 2009 Statut Membre Dernière intervention 14 juin 2009 - 8 mars 2009 à 22:37
zeOoo Messages postés 29 Date d'inscription vendredi 20 février 2009 Statut Membre Dernière intervention 14 juin 2009 - 9 mars 2009 à 09:56
Bonjour,

dans le cadre de mon bts ig je dois faire des epti sur une d'entre elle codées en C# j'ai un probleme jexplique
Mon projet est une application objet donc en C# qui permet de gerer un club de foot, affecter un entraineur a une equipe , ajouter un entraineur un menbre de staff ou une equipe . mais voila je bloque car lorsque j'affecte un entraineur a une equipe est donc lequipe a lentraineur sa fais une sorte de boucle infinie dans les setteur est-ce que quelqu'un aurait une idée

voici comment jaffecte un entraineur a une equipe:

private void btn_affecter_Click(object sender, EventArgs e)
{
((Equipe)lstAffectEq.SelectedItem).Entraineur = ((Entraineur)lstAffEnt.SelectedItem);
((Entraineur)lstAffEnt.SelectedItem).IsDispo = false;

}


voici le setteur de entraineur :


public Entraineur Entraineur
{
get { return _entraineur; }
set
{
_entraineur = value;

{
if (_entraineur != null)//verification de l'existance de l'entraineur
{
_entraineur.equipe = null;//retire l'equipe de l'entraineur

}
_entraineur = value;// affectation de l'entraineur
_entraineur.equipe = this;// affectation de l'equipe

}
}
}

et voici selui de lequipe :

public Equipe equipe
{
get { return _equipe; }
set
{

if (_equipe.Entraineur != null)//si l'equipe existe
{

_equipe.Entraineur = null;// je retire l'entraineur
}
_equipe = value;
_equipe.Entraineur = this;//affectation de l'entraineur
}
}

merci pour votre aide

2 réponses

scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 425
9 mars 2009 à 03:58
Bonsoir,

Il n'est pas toujours utile d'avoir des liaisons doubles comme tu le fais.

Dans ton cas, ton équipe pourrait très bien contenir un tableau d'entraineurs, et tu y accède via elle.

monEquipe.entraineurs[1].getNom(); // par exemple

Sinon là ce qui boucle chez toi c'est le fait que quand tu affecte un entraineur à une équipe, du coup tu affecte l'équipe à l'entraineur, mais quand tu affecte une équipe à un entraineur, tu affecte cet entraineur à l'équipe, et ainsi de suite, tes deux sets s'appellent l'un et l'autre indéfiniment.

Voilà je serais toi je reverrais cependant ton analyse pour ce programme afin de revoir ça de façon plus propre qu'une double liaison qui sont souvent très embêtantes à gérer donc autant s'en passer dès que possible.

Bonne chance.
0
zeOoo Messages postés 29 Date d'inscription vendredi 20 février 2009 Statut Membre Dernière intervention 14 juin 2009
9 mars 2009 à 09:56
je te remercie pour ta réponse je pense que je vais suivre ton conseil mais jaurais aimais avoir une solution . Je sais d'ou vien mon probleme mais je c pa comment le reglé ce que je voulais a la base c t de pouvoir connaitre l'entraineur d'une equipe en passant par l'equipe et vice versa
0