代码:
private void addExcel(object sender, TextChangedEventArgs e)
{
if (!textBox.Text.Contains('!'))
{
textBox.Text += "!";
}
StringBuilder sb = new StringBuilder();
sb.Append(textBox.Text);
sb.Remove(textBox.Text.IndexOf('!'), 1);
textBox.Text = sb.ToString();
}
http://i66.tinypic.com/24cy1aq.png
sb.ToString();
中发生例外
这个应用程序应该计算阶乘。
答案 0 :(得分:3)
我认为这是在TextBox.TextChanged
事件中调用的。发生这种情况时:textBox.Text = sb.ToString();
它添加string
没有“!”到文本框,然后更改,然后触发事件,然后:
if (!textBox.Text.Contains('!'))
{
textBox.Text += "!";
}
添加“!”,然后触发再次删除它的事件。 FOREVAR!
最好的办法是将sb.ToString()
分配给另一个变量,而不是文本框。
答案 1 :(得分:0)
根据您提供的代码,无法告诉您应用程序出了什么问题;该代码不包含堆栈溢出。
我假设您正在使用递归来计算阶乘。可能的罪魁祸首是你得到的递归结束条件错误,实际上是无休止的递归。发生堆栈溢出的确切位置通常无关紧要;它恰好是导致分配推动堆栈超过限制的命令。
仔细查看进行实际因子计算的代码。