J'écris un utilitaire qui réfléchit sur deux graphes d'objets et retourne une valeur pour indiquer si les graphes sont identiques ou non. Il m'a fait penser, y at-il un modèle généralement accepté pour l'écriture d'un algorithme de récursivité qui renvoie une valeur de certains où dans la récursivité?Algorithmes de récursion: modèles et pratiques suggérés?
Ma solution serait probablement utiliser un paramètre ref et ressembler à quelque chose comme ce code pseudo:
public static bool IsChanged(T current, T previous)
{
bool isChanged = false;
CheckChanged(current, previous, ref isChanged);
return isChanged ;
}
private static void CheckChanged(T current, T previous, ref isChanged)
{
//perform recursion
if (graphIsChanged)
isChanged = true;
else
CheckChanged(current, previous, ref isChanged);
}
Y at-il une meilleure/propre/façon plus efficace? Existe-t-il un modèle général pour une telle fonction?
merci .. je ne peux pas vraiment l'utiliser dans mon cas, car l'appel final est conditionnel en fonction de la forme de courant et précédent .. mais une bonne réponse et un exemple de toute façon – flesh