窗体类,在简单的代码测试中不断获得“System.StackOverflowException”

本文关键字:System StackOverflowException 简单 测试 代码 窗体 | 更新日期: 2024-11-07 11:22:15

我一直在尝试实现和调整我的编码风格,更多地是一种过程式编程风格,但在尝试运行另一个使用系统注册表的类时遇到了问题。此外,代码在主类中运行良好。 P.S 我来自脚本背景。

代码错误:System.Windows.Forms 中发生类型为"System.StackOverflowException"的未处理异常.dll

我减少了主应用程序中的代码,以便更容易找到问题。

主窗体类:

public partial class Form1test : Form
{
    // An unhandled exception of type 'System.StackOverflowException' 
    // occurred in System.Windows.Forms.dll
    public Form1test() 
    {
        TestClass lsr = new TestClass();
        lsr.chkRegAct();
        InitializeComponent();
    }  
}

测试类:

class TestClass : Form1test
{
   //rest of code
}

窗体类,在简单的代码测试中不断获得“System.StackOverflowException”

TestClass派生自Form1Test

你创建一个新的TestClass,这会导致调用基类(Form1Test)的构造函数,从而生成一个新的TestClass,这导致调用基类(Form1Test)的构造函数,从而生成一个新的TestClass,这导致调用基类(Form1Test)的构造函数,生成一个新的TestClass,结果调用基类(Form1Test)的构造函数,生成一个新的TestClass结果调用基类(Form1Test)的构造函数,生成一个新的TestClass,结果调用基类(Form1Test)的构造函数,生成一个新的TestClass,结果调用基类(Form1Test)的构造函数,生成一个新的TestClass,结果调用基类(Form1Test)的构造函数,生成一个新的TestClass,结果调用基的构造函数类 (Form1Test) 生成一个新的TestClass,结果调用基类 (Form1Test) 的构造函数,生成 .....

StackOverflow异常是由于无限递归导致的大量函数调用。

由于继承链 TestClass : Form1test。调用 TestClass 构造函数会创建无限递归。