如何访问类中的变量,该变量在表单中定义

时间:2016-03-21 08:46:50

标签: c#

例如,我有一个按钮,可以获得3个变量:

    private void Savebtn_Click(object sender, EventArgs e)
    {
        int A, B, C;
        A = int.Parse(textBox1.Text);
        B = int.Parse(textBox2.Text);
        C = int.Parse(textBox3.Text);
    }

我有一个类使用这些变量来计算另一个变量,例如:

class Class1
{
    public static int MWCompute()
    {
        int MW;
        MW = A * B * C;
        return MW;
    }           
}

我想再次在我的表单中使用这个MW变量:

if (something)
{
     textbox4.text = MW.ToString();
}

3 个答案:

答案 0 :(得分:3)

如果不将A, B, C声明为静态变量,则可以通过将这些变量作为参数传递来调用MWCompute,并将结果输入到局部变量MW中。然后,您可以在if语句中应用逻辑:

private void Savebtn_Click(object sender, EventArgs e)
{
    int A, B, C;
    A = int.Parse(textBox1.Text);
    B = int.Parse(textBox2.Text);
    C = int.Parse(textBox3.Text);

    int MW = Class1.MWCompute(A, B, C);

    if (something)
    {
        textbox4.text = MW.ToString();
    }
}

Class1定义为:

class Class1 // as suggested by @Jamiec: give this class a meaningful name
{
    public static int MWCompute(int A, int B, int C)
    {
        int MW;
        MW = A * B * C;
        return MW;
    }           
}

答案 1 :(得分:2)

通常,您可以根据需要在构造函数或方法本身中将参数传递给类。

class MWCalculator // give it a meaningful name, for starters!
{
    public static int MWCompute(int A, int B, int C)
    {
        int MW;
        MW = A * B * C;
        return MW;
    }           
}

然后以你的形式:

private void Savebtn_Click(object sender, EventArgs e)
{
    int A, B, C;
    A = int.Parse(textBox1.Text);
    B = int.Parse(textBox2.Text);
    C = int.Parse(textBox3.Text);
    var calc = new MwCalculator();
    textBox4.Text = calc.MWCompute(A,B,C).ToString();
}

答案 2 :(得分:0)

您有两个与范围相关的问题:

  • 如果没有类实例,则无法从静态方法访问非静态变量;
  • 您无法从其他方法访问方法变量。

解决方案是将ABC移到方法之外并进入类,并使MWCompute方法非静态。