尝试初始化变量时出现堆栈溢出错误#

Dau*_*nis 0 c# stack-overflow

每当我打开 TradeForm 菜单时,我都会在行上收到此错误,内容为 Conditions con = new Conditions();

System.StackOverflowException
Run Code Online (Sandbox Code Playgroud)

这是相关的代码


public partial class TradeForm : Form
    {
        Conditions con = new Conditions();
        


        public TradeForm()
        {
            InitializeComponent(); 
            
        }

        
        public void button1_Click(object sender, EventArgs e)
        {
            if(con.foo >= 1)
            {
                lst1.Text = "text";
                res.Luxuries++;
                button1.Hide();
            }
      }

    }
Run Code Online (Sandbox Code Playgroud)

在另一个名为 Properties 的类中

 public class Conditions : TradeForm
    {
        public int foo = 0;
    }
Run Code Online (Sandbox Code Playgroud)

Nei*_*l W 7

  1. 由于 Conditions 继承自 TradeForm,因此每次创建新的 Conditions 时,您都会创建一个新的 TradeForm。

  2. 每当您创建 TradeForm 时,您都会根据抛出异常的行创建一个新的 Conditions 对象。

  3. 当您创建新条件时,您将返回到 1。

这会无限循环,因此会出现 StackOverflow 异常。