我收到错误我的代码中Forte Sender.exe中发生了'System.StackOverflowException'类型的未处理异常。我的理解是,这意味着我的代码中存在无限循环,但是我似乎找不到该循环。这是我的代码:
表格1:
public partial class MainBox : Form
{
//Making a name for the ApplicationProperties form. It can be opened when called.
ApplicationProperties ApplicationPropertiesWindow = new ApplicationProperties();
//All of the functions for form1 below.
表格2:
public partial class ApplicationProperties : Form
{
MainBox MainBoxWindow = new MainBox();
//All of the funcitons for form2 below.
因此,我注意到,如果取出
MainBox MainBoxWindow = new MainBox();
,程序将正确运行。但是我需要那里的实例来调用Form1中的函数。我该如何解决这个问题?调用函数或解决无限循环的另一种方法。 最佳答案
好吧,您的MainBox
创建了ApplicationProperties
,又创建了MainBox
,又创建了ApplicationProperties
,依此类推。显然,您需要分拆此循环。
由于您的代码现在正确,您可能希望删除属性表单的new MainBox()
并随后注入它,例如:
ApplicationProperties ApplicationPropertiesWindow = new ApplicationProperties();
ApplicationPropertiesWindow.MainBoxWindow = this;
和
public partial class ApplicationProperties : Form
{
public MainBox MainBoxWindow { get; set; }
}
关于c# - 发生类型为'System.StackOverflowException'的未处理异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17934739/