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