У меня есть класс Task, который может сообщить, сколько времени потребуется для выполнения задачи. Однако этот класс может содержать подзадачи того же типа.Советы по дизайну рекурсивного метода
public class Task
{
public string Name{get; set;}
public DateTime Start {get; set;}
public DateTime Finish {get; set;}
public List<Task> SubTasks {get; set;}
public TimeSpan GetDuration()
{
return Finish - Start;
}
public TimeSpan GetTotalDuration()
{
//How?
}
}
SubTasks может быть на несколько уровней глубоким, теперь нет логического предела. Я не уверен, как разработать метод, отвечающий за хождение подзадач и накопление значения TimeSpan?
Любые элегантные идеи оценили?
Благодаря
Что было бы вашим наивным подходом? – Dykam
Существует ли какое-либо отношение между длительностью подзадач родительской задаче, например. зависят они друг от друга или если продолжительность родительской задачи уже содержит продолжительность всех дочерних задач? – Dominik
Это была бы еще одна проблема, просто захотеть сначала свернуть рекурсию. Но чтобы ответить на ваш вопрос Время начала/окончания родительского времени будет минимальным/максимальным. – Fixer