我是新来的,也是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的值变成了一个全局的东西我可以使用并在程序的其余部分调用???
答案 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());
}
脱离我的头脑这应该有效