Например, у меня есть класс 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?
}
}
Подзадачи могут быть на нескольких уровнях, логического ограничения сейчас нет. Я не уверен, как разработать метод, отвечающий за обход подзадач и накапливать значение TimeSpan?
Любые изящные идеи оценены?
Спасибо