Ich schreibe ein Dienstprogramm, das auf zwei Objektdiagramme reflektiert und einen Wert zurückgibt, um anzuzeigen, ob die Diagramme identisch sind oder nicht. Es hat mich zum Nachdenken gebracht, gibt es ein allgemein akzeptiertes Muster für das Schreiben eines Rekursionsalgorithmus, der einen Wert von einigen wo in der Rekursion zurückgibt?Rekursionsalgorithmen: vorgeschlagene Muster und Praktiken?
Meine Lösung wahrscheinlich einen ref-Parameter und in etwa so aussehen Pseudo-Code verwenden würde:
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);
}
Gibt es eine bessere/Reinigungsmittel/effizientere Art und Weise? Gibt es ein allgemeines Muster für eine solche Funktion?
danke .. ich kann es tatsächlich in meinem Fall verwenden, weil der letzte Anruf abhängig von der Form des aktuellen und vorherigen .. abhängig ist, aber eine nette Antwort und Beispiel sowieso – flesh