发生了'System.StackOverflowException'类型的未处理异常

Cha*_*nst 1 c#

我收到错误我的代码中的Forte Sender.exe发生了未处理的类型'System.StackOverflowException'的异常.我理解这意味着我的代码中存在无限循环,但我似乎无法找到这个循环.这是我的代码:

Form1中:

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.
Run Code Online (Sandbox Code Playgroud)

窗体2:

public partial class ApplicationProperties : Form
{
    MainBox MainBoxWindow = new MainBox();
    //All of the funcitons for form2 below.
Run Code Online (Sandbox Code Playgroud)

所以我注意到,如果我拿出MainBox MainBoxWindow = new MainBox();那个程序将正确运行.但我需要那个实例来调用Form1中的函数.我怎样才能解决这个问题?要么以不同的方式调用函数,要么解决无限循环.

Jon*_*Jon 6

好吧,你MainBox创造一个ApplicationProperties,然后创造一个MainBox,创造一个ApplicationProperties,等等无限的广告.显然你需要打破这个循环.

正如您的代码现在所示,您可能希望删除new MainBox()属性表单并在之后注入它,例如:

ApplicationProperties ApplicationPropertiesWindow = new ApplicationProperties();
ApplicationPropertiesWindow.MainBoxWindow = this;
Run Code Online (Sandbox Code Playgroud)

public partial class ApplicationProperties : Form
{
    public MainBox MainBoxWindow { get; set; }
}
Run Code Online (Sandbox Code Playgroud)