[英]C# binary search tree - stack overflow - debug
我是C ++之后學習C#的新手。 VS2010。
試圖調試我的代碼,我在“本地”框架中遇到了奇怪的空行。 調試器在我幾秒鍾后盯着這些空行退出。
請查看: http : //pastebin.com/KZbfy8JF
謝謝。
我花了至少3個小時尋找解決方案並玩弄代碼無濟於事。
Value
屬性getter和setter是無限遞歸的 - 將它們更改為:
public T Value { get; set; }
已經回答(價值獲取/設定)但這里有一個提示:
在VS.NET中,按CTRL + ALT + E打開“ 例外”對話框(根據您在VS.NET中選擇的配置文件,它可能也在Debug-> Exceptions下)。 這使得您可以在拋出某些異常類型時中斷,而不是完整的堆棧展開和程序最終崩潰。
對於“Common Language Runtime Exceptions”,選中“Thrown”復選框,單擊OK,然后運行您的程序。 程序的執行將在異常點停止,這應該會更加明顯。
在您的情況下,該程序會破壞您的財產。 要查看更多內容,請打開調用堆棧窗口(調試 - > Windows->調用堆棧或CTRL + ALT + C)以查看完整堆棧,您將看到您的屬性是其中唯一的內容。
一般來說,堆棧溢出意味着你在沒有回頭的情況下進行遞歸。 但是,我不知道你在哪里這樣做。 我要做的是在幾個戰略位置插入一個Console.WriteLine語句,以查看執行的行和頻率。 例如,在Insert的開頭和內部循環中。 這應該給你(和我們;)更多的信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.