首页 > 解决方案 > 正确调用另一个类的方法?

问题描述

见朋友我有一个问题,我认为我的代码在循环中

在你回答“RePoST”之前,我已经访问了所有其他线程,但我仍然没有找到解决方案

namespace Triangle_Proportions
{
    public partial class Form1 : Form
    {
        public class Data : Form1
        {
            public static class Variables
            {
                public static int A;
                public static int B;
                public static int C;

                public static int a;
                public static int b;
                public static int c;
            }

            public void Set_Variables()
            {
                Variables.A = label0A.Left;
                Variables.B = label0B.Left;
                Variables.C = label0C.Left;

                Variables.a = label_a.Left;
                Variables.b = label_b.Left;
                Variables.c = label_c.Left;
            }
        }

        public Form1()
        {
            InitializeComponent();
            Data etc = new Data();
            etc.Set_Variables();
        }
    }
}

这部分代码的唯一目标是在Set_Variables();之后调用InitializeComponent();

我知道我可以简单地通过“快速退出”VariablesSet_Variablesfrom来解决这个问题,Data但我希望两者都留在里面Data,因为在搜索时更容易查找它。

它没有任何语法错误,但每次我决定调用Set_Variables();程序时都不会打开

标签: c#winforms

解决方案


你有一个递归问题。

Form1您的构造函数中实例化一个新类,该类也继承自Form1它再次调用构造函数。看到问题了吗?

创建一个非静态版本:

public class Variables
{
    public int A;
    public int B;
}

你的表格:

public partial class Form1 : Form
{
    private Variables _variables;

    public Form1()
    {
        InitializeComponent();
        _variables = new Variables
        {
            A = label0A.Left,
            B = label0B.Left
        };
    }
}

推荐阅读