错误:mscorlib.dll中发生了未处理的“System.StackOverflowException”类型异常

时间:2014-01-27 19:35:50

标签: c# stack-overflow

今天我开始上课。我创建了一些类来使我的MainWindow.xmal.cs更小一些。创建第一个类和调试后,我收到以下错误消息:

  

Eine nicht behandelte Ausnahme des Typs“System.StackOverflowException”ist in mscorlib.dll aufgetreten。

     

Eine nicht behandelte Ausnahme des Typs“System.StackOverflowException”ist in APPLICATION.exe aufgetreten。

class Sprachpaket_ENG_Template01
{
    MainWindow MW = new MainWindow();

    public void Template01()
    {
        MW.checkBox_1_Bcc.Content = "Bcc:";
        MW.checkBox_1_Cc.Content = "Cc:";
    }

- >这会导致错误: MainWindow MW = new MainWindow();

1 个答案:

答案 0 :(得分:5)

根据您的编辑和评论,您有:

class Sprachpaket_ENG_Template01
{
    // Create a new MainWindow whenever Sprachpaket_ENG_Template01 is created
    MainWindow MW = new MainWindow();
}

class MainWindow()
{
    public MainWindow()
    {
        // Create a new Sprachpaket_ENG_Template01 whenever MainWindow is created
        Sprachpaket_ENG_Template01 ENG_01 = new Sprachpaket_ENG_Template01();
    }
}

这里有一个无限循环,这就是你得到堆栈溢出的原因。

您可能希望将MainWindow作为参数传递给Sprachpaket_ENG_Template01构造函数:

class Sprachpaket_ENG_Template01
{
    MainWindow MW;

    public Sprachpaket_ENG_Template01(MainWindow mw)
    {
        MW = mw;
    }
}

class MainWindow()
{
    public MainWindow()
    {
        Sprachpaket_ENG_Template01 ENG_01 = new Sprachpaket_ENG_Template01(this);
    }
}