从班级中调用表单时,我得到一个StackOverflowException

在我的MainForm中,我使用Youtube.cs来调用Youtube yt = new Youtube();类。然后在我的Youtube类中,我使用MainForm调用MainForm main = new MainForm();。我相信这就是导致StackOverflow的原因,因为它似乎正在创建一个循环。

我需要从Youtube访问MainForm类,还需要从我的MainForm类访问Youtube,所以是否有解决此问题的方法而不会引起StackOverflow?

这是MainForm的顶部:

public partial class MainForm : Form
{
    public MainForm()
    {
        InitializeComponent();
    }

    Youtube yt = new Youtube();


这是从Youtube.cs的顶部开始的:

class Youtube
{
    MainForm main = new MainForm();

最佳答案

将表单对象传递给YouTube类,然后在YouTube类中使用该对象。

public class Youtube
{
     MainForm m_MainForm = null;
     public Youtube(MainForm frm)
     {
            m_MainForm = frm;
     }

}

关于c# - 从类调用表单时的StackOverflow,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11797343/

10-09 15:33