C#我给了价值,但不能把它拿回其他部分

时间:2016-03-20 12:27:54

标签: c# variables

我是新来的,也是C#的新手,所以对我来说很容易:)

我正在尝试编写一段代码,这段代码将占用给定的数字,并在保持数字的情况下创建4组。我在我的代码中使用的示例是4个。

含义:如果我有10个积木并且想要制作4个套数,则将10除以4(2,5)舍入(关闭)到2.然后* 4以获得我可以获得的数量。

所以这就是我想出来的:

    public double buysession;

    public void button1_Click(object sender, EventArgs e)
    {
        double Value1 = float.Parse(textBox1.Text);
        double divideby = 4;
        double Calcstuff = Value1 / divideby;
        double Rounded1 = Math.Floor(Calcstuff);
        double buysession = Rounded1 * 4;
        {

            label1.Text = "you can get " + Rounded1.ToString() +" sets";
        }
    }

    private void button2_Click(object sender, EventArgs e)
    {
        MessageBox.Show(buysession.ToString());
    }

但问题是,当我通过按钮2调用消息框时,它显示buysession的值为0而不是8(如果我将Messagebox.Show放在button1中,它确实返回8作为buysession的值)。

我如何制作它让我在button1给buysession的值变成了一个全局的东西我可以使用并在程序的其余部分调用???

3 个答案:

答案 0 :(得分:5)

您正在创建名为" buysession"的本地变量。并为其设定价值。这就是为什么你的" buysession"字段仍为空。

兑换

double buysession = Rounded1 * 4;

buysession = Rounded1 * 4;

答案 1 :(得分:1)

button2处理程序中,您显示的是buysession成员变量(值始终为0)的值。在button1处理程序中,您声明了一个名为buysession的局部变量(其计算值为8)。

我已将以下代码更改为始终使用班级成员buysession

 public double buysession;

    public void button1_Click(object sender, EventArgs e)
    {
        double Value1 = float.Parse(textBox1.Text);
        double divideby = 4;
        double Calcstuff = Value1 / divideby;
        double Rounded1 = Math.Floor(Calcstuff);
        this.buysession = Rounded1 * 4;    // CHANGE HERE
        label1.Text = "you can get " + Rounded1.ToString() +" sets";

    }

    private void button2_Click(object sender, EventArgs e)
    {
        MessageBox.Show(this.buysession.ToString());
    }

答案 2 :(得分:-1)

public double buysession;
double Value1;
double divideby;
double Calcstuff;
double Rounded1;
double buysession;
public void button1_Click(object sender, EventArgs e)
{
    Value1 = float.Parse(textBox1.Text);
    divideby = 4;
    Calcstuff = Value1 / divideby;
    Rounded1 = Math.Floor(Calcstuff);
    double buysession = Rounded1 * 4;
    {

        label1.Text = "you can get " + Rounded1.ToString() +" sets";
    }
}

private void button2_Click(object sender, EventArgs e)
{
    MessageBox.Show(buysession.ToString());
}

脱离我的头脑这应该有效