У меня есть следующая функция в моем приложении c # silverlight, чтобы найти общее количество подузлов узла в дереве
//get total children
private int getTotalChildren(int id)
{
int total=0;
for (int i = 0; i < persons.Count;i++ )
{
if (persons[i].Manager == id)
{
total += 1;
total += getTotalChildren(persons[i].Id);
}
}
return total;
}
общее количество строк + = getTotalChildren (people [i] .id) делаетокна браузера автоматически закрываются, когда я запускаю его (я предполагаю, что это является причиной сбоя?) в IDE я не получаю никаких ошибок.
edit: я не вижу, как это может быть бесконечной рекурсиейтак как нет человека, который имеет себя в качестве менеджера.Person это список, построенный с использованием этого xml
<?xml version="1.0" ?>
<Persons>
<Person>
<Id>1</Id>
<Name>temp</Name>
<Qlid>1234</Qlid>
<Manager>0</Manager>
</Person>
<Person>
<Id>2</Id>
<Name>someone</Name>
<Qlid>5678</Qlid>
<Manager>1</Manager>
</Person>
<Person>
<Id>3</Id>
<Name>wefwef</Name>
<Qlid>3333</Qlid>
<Manager>1</Manager>
</Person>
<Person>
<Id>4</Id>
<Name>batman</Name>
<Qlid>6723</Qlid>
<Manager>3</Manager>
</Person>
<Person>
<Id>5</Id>
<Name>batman</Name>
<Qlid>6723</Qlid>
<Manager>3</Manager>
</Person>
</Persons>
edit2: хорошо, извините, ребята, это было действительно глупо.Это был круговой цикл, я думал, что сделал ярлык для файла xml на своем рабочем столе, но вместо этого случайно сделал копию.человек 1 имел человека 3 в качестве менеджера, который имел человека 1 в качестве менеджера в файле, который программа читала, пока я редактировал копию