Я пишу утилиту, которая отражает на двух объектных графах и возвращает значение, чтобы указать, идентичны ли графики или нет. Это заставило меня задуматься, существует ли общепринятый шаблон для написания алгоритма рекурсии, который возвращает значение из некоторого, где в рекурсии?Алгоритмы рекурсии: предлагаемые шаблоны и методы?
Мое решение будет, вероятно, использовать параметр реф и посмотреть что-то вроде этого псевдокода:
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);
}
Есть ли лучше/очиститель/более эффективный способ? Существует ли общий шаблон для такой функции?
спасибо .. я не могу использовать его в моем случае, потому что окончательный вызов условный в зависимости от формы текущего и предыдущего .. но хороший ответ и пример в любом случае – flesh