我收到错误我的代码中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/

10-10 12:58