Smookii
Messages postés10Date d'inscriptionlundi 18 juin 2012StatutMembreDernière intervention29 mars 2013
-
12 janv. 2013 à 20:42
Smookii
Messages postés10Date d'inscriptionlundi 18 juin 2012StatutMembreDernière intervention29 mars 2013
-
13 janv. 2013 à 00:05
Bonjours,
alors voilà je suis entrain de créer poker en winform avec un grand nombre de fonction.
Le problème c'est que mon programme rentre dans certaine fonction va rentrer dans une autre fonction sans sortir de la première, puis va rentrer dans une autre fonction et ainsi de suite.
Etant donner qu'on sort pas des fonctions avant de rentrer dans les suivantes, elles se stack les unes les autres et mon programmes fini par planter a cause d'une erreur StackOverflowException.
Ce que je voudrais savoir c'est est ce qu'il y a un moyen de rentrer dans une fonction et sortir de l'ancienne en même temps, quelque chose comme :
yann_lo_san
Messages postés1137Date d'inscriptionlundi 17 novembre 2003StatutMembreDernière intervention23 janvier 201626 12 janv. 2013 à 22:17
Salut,
et pourquoi pas tout simplement des fonctions qui retournent le numéro de la fonction suivante à appeler (aucune surcharge de la pile) :
// point d'entrée
public static void main()
{
// logique init app
dispatcher();
// Logique fin app
};
void dispatcher()
{
int retFunc = fn_fonction1(); // premier appel
while(retFunc > 0) // boucle d'appels
{
switch(retFunc)
{
case 1: retFunc = fn_fonction1(); break;
case 2: retFunc = fn_fonction2(); break;
case 3: retFunc = fn_fonction3(); break;
}
}
}
int fn_fonction1()
{
return 2; // a la place de fn_fonction2()
}
int fn_fonction2()
{
return 3; // a la place de fn_fonction3()
}
int fn_fonction3()
{
bool fin = false;
// ... logique de fin
if( fin )
return 0; // stoppe la boucle d'appels
else
return 1; // revient à la fonction 1
}