Entwickler-Ecke
C# - Die Sprache - Letztes Kind suchen gibt StackOverFlow
IngoM - Mo 15.11.10 22:44
Titel: Letztes Kind suchen gibt StackOverFlow
Hallo!
Habe folgendes programmiert, gibt aber in markierter Zeile nen StackOverFlow!
Diese Funktion soll das letzte unterkind der Hauptklasse herausfinden.
Die letzten Unterkinder, bei denen die Klasse "clsEntnahmestelle" Entnahmestelle = null ist, sollen einen Error ausgeben.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51:
| public ListBox NextChilds(clsLeitung aCurrentChild, ListBox Errortext) { ListBox result = Errortext; foreach (clsLeitung i in aCurrentChild.Kindleitung) { if (i.Kindleitung.Count > 0) { ListBox newresult = NextChilds(aCurrentChild, result); for (int m = 0; m < newresult.Items.Count; m++) { result.Items.Add(newresult.Items[m]); } } else { LastChilds.Add(i); if (i.Entnahmestelle == null) { result.Items.Add("Error: Der Teilstrecke \"" + i.Name + "\" wurde keine Entnahmestelle oder Teilstrecke zugeordnet"); } } } return result; } public ListBox InitLastChilds(clsLeitung aFirstChild) { ListBox result = new ListBox();
if (aFirstChild.Kindleitung.Count > 0) { ListBox newresult = NextChilds(aFirstChild, result); for (int n = 0; n < newresult.Items.Count; n++) { result.Items.Add(newresult.Items[n]); } } else { LastChilds.Add(aFirstChild); if (aFirstChild.Entnahmestelle == null) { result.Items.Add("Error: Der Teilstrecke \"" + aFirstChild.Name + "\" wurde keine Entnahmestelle oder Teilstrecke zugeordnet"); } } return result; } |
Kha - Mo 15.11.10 23:34
:welcome: in der EE!
Wenn du dir deinen Code noch einmal anschaust, sollte dir auffallen, dass du die Methode rekursiv wieder mit den exakt gleichen Parametern aufrufst, das kann ja nur in einer Endlosrekursion enden.
PS: Children ;)
IngoM - Di 16.11.10 18:17
Oh man ich Vollidiot ;)
Danke dir, da starrt man ewig drauf und rafft es nicht ^^
PS Danke fürs Willkommen, bin aber eigtl schon lange angemeldet und war immer im Delphi-Forum unterwegs, hab aber irgendwie keine Beiträge mehr die ich gepostet hatte.
ka :) War auch schon lange nicht mehr da, aber sagen wir einfach ComeBack ;)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!