【问题标题】:Cannot evaluate expression because the current thread is in a stack overflow state.(C#)无法计算表达式,因为当前线程处于堆栈溢出状态。(C#)
【发布时间】:2014-05-01 09:10:54
【问题描述】:

我正在用 C# 编写一个如下所示的应用程序:

public partial class MainForm : Form
{

    WICForm Frm = new WICForm();

    public MainForm(){}

}

其中_MainForm__WICForm_ 是同一应用程序中的两种不同形式。但是当我运行应用程序时,在创建WICForm 的新实例Frm 时出现上述错误。可能是什么原因?

【问题讨论】:

  • WICForm 构造函数有什么作用?

标签: c# stack-overflow


【解决方案1】:

大概,您正在WICForm 的构造函数中创建MainForm 的新实例(或从其中调用的某些代码)。

这样MainFormWICForm 类会递归调用和构造彼此的新实例,这将导致堆栈溢出异常。

提示:在包含new WICForm(); 的行上放置一个断点(将光标放在该行上并按F9)。当您现在在调试模式下运行代码时,您可以进入该方法以查看它的作用。

【讨论】:

  • 感谢您的回复。你说的恰好是对的。在不知不觉中发生了递归。
猜你喜欢
  • 2012-07-26
  • 2013-08-13
  • 2016-02-16
  • 2017-02-13
  • 2015-09-08
  • 2019-03-28
  • 2013-03-19
  • 1970-01-01
  • 2010-11-08
相关资源
最近更新 更多