C# 小弟我给变量赋值了,但是到后面计算的时候却又变成了初始值。为什么
C# 我给变量赋值了,但是到后面计算的时候却又变成了初始值。为什么?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Services;
public partial class calculator : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
double x =0;
int pos = 0;
public void addNum(int num)
{
TextBox1.Text = TextBox1.Text + num.ToString();
}
protected void Button1_Click(object sender, EventArgs e)
{
addNum(1);
}
protected void Button2_Click(object sender, EventArgs e)
{
addNum(2);
}
protected void Button3_Click(object sender, EventArgs e)
{
addNum(3);
}
protected void Button4_Click(object sender, EventArgs e)
{
addNum(4);
}
protected void Button5_Click(object sender, EventArgs e)
{
addNum(5);
}
protected void Button6_Click(object sender, EventArgs e)
{
addNum(6);
}
protected void Button7_Click(object sender, EventArgs e)
{
addNum(7);
}
protected void Button8_Click(object sender, EventArgs e)
{
addNum(8);
}
protected void Button9_Click(object sender, EventArgs e)
{
addNum(9);
}
protected void Button10_Click(object sender, EventArgs e)
{
addNum(0);
}
protected void Button11_Click(object sender, EventArgs e)
{
pos = 1;
x = Convert.ToInt64(TextBox1.Text);
TextBox1.Text = "";
}
protected void Button12_Click(object sender, EventArgs e)
{
pos = 2;
x = Convert.ToInt64(TextBox1.Text);
TextBox1.Text = "";
}
protected void Button14_Click(object sender, EventArgs e)
{
pos = 3;
x = Convert.ToInt64(TextBox1.Text);
TextBox1.Text = "";
}
protected void Button15_Click(object sender, EventArgs e)
{
pos = 4;
x = Convert.ToInt64(TextBox1.Text);
TextBox1.Text = "";
}
protected void Button16_Click(object sender, EventArgs e)
{
double y = Convert.ToInt64(TextBox1.Text);
localhost.calculator result = new localhost.calculator();
if(pos==1)
{
TextBox1.Text = (result.sum(x, y)).ToString();
}
else if(pos==2)
{
TextBox1.Text = (result.sub(x, y)).ToString();
}
else if(pos==3)
{
TextBox1.Text = (result.mult(x, y)).ToString();
}
else
{
TextBox1.Text = (result.div(x, y)).ToString();
}
}
protected void Button13_Click(object sender, EventArgs e)
{
TextBox1.Text = "";
pos = 0;
x = 0;
}
}
这是我的一段代码,求大神解答。
------解决思路----------------------
每当页面的生命周期开始时,创建页面对象,自然变量是初始值。而你之前赋值的变量,随着前一个页面生命周期的(瞬间)结束,已经去了。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Services;
public partial class calculator : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
double x =0;
int pos = 0;
public void addNum(int num)
{
TextBox1.Text = TextBox1.Text + num.ToString();
}
protected void Button1_Click(object sender, EventArgs e)
{
addNum(1);
}
protected void Button2_Click(object sender, EventArgs e)
{
addNum(2);
}
protected void Button3_Click(object sender, EventArgs e)
{
addNum(3);
}
protected void Button4_Click(object sender, EventArgs e)
{
addNum(4);
}
protected void Button5_Click(object sender, EventArgs e)
{
addNum(5);
}
protected void Button6_Click(object sender, EventArgs e)
{
addNum(6);
}
protected void Button7_Click(object sender, EventArgs e)
{
addNum(7);
}
protected void Button8_Click(object sender, EventArgs e)
{
addNum(8);
}
protected void Button9_Click(object sender, EventArgs e)
{
addNum(9);
}
protected void Button10_Click(object sender, EventArgs e)
{
addNum(0);
}
protected void Button11_Click(object sender, EventArgs e)
{
pos = 1;
x = Convert.ToInt64(TextBox1.Text);
TextBox1.Text = "";
}
protected void Button12_Click(object sender, EventArgs e)
{
pos = 2;
x = Convert.ToInt64(TextBox1.Text);
TextBox1.Text = "";
}
protected void Button14_Click(object sender, EventArgs e)
{
pos = 3;
x = Convert.ToInt64(TextBox1.Text);
TextBox1.Text = "";
}
protected void Button15_Click(object sender, EventArgs e)
{
pos = 4;
x = Convert.ToInt64(TextBox1.Text);
TextBox1.Text = "";
}
protected void Button16_Click(object sender, EventArgs e)
{
double y = Convert.ToInt64(TextBox1.Text);
localhost.calculator result = new localhost.calculator();
if(pos==1)
{
TextBox1.Text = (result.sum(x, y)).ToString();
}
else if(pos==2)
{
TextBox1.Text = (result.sub(x, y)).ToString();
}
else if(pos==3)
{
TextBox1.Text = (result.mult(x, y)).ToString();
}
else
{
TextBox1.Text = (result.div(x, y)).ToString();
}
}
protected void Button13_Click(object sender, EventArgs e)
{
TextBox1.Text = "";
pos = 0;
x = 0;
}
}
这是我的一段代码,求大神解答。
------解决思路----------------------
每当页面的生命周期开始时,创建页面对象,自然变量是初始值。而你之前赋值的变量,随着前一个页面生命周期的(瞬间)结束,已经去了。