我正在尝试重新创建我制作的C#控制台应用程序,但这次是在ASP.Net Web Forms中,但我的按钮有点麻烦。
我制作了2个按钮,一个用于初始化带有值的变量,另一个用于使用所述变量的值,但是当我尝试使用变量时,我收到一个错误,说明该变量不存在于当前的背景。
以下是我的代码的示例:
protected void Button1_Click(object sender, EventArgs e)
{
int answer = 5;
}
protected void Button2_Click(object sender, EventArgs e)
{
if (Convert.ToInt32(txtAnswer.Text) == answer)
{
lblQuestion.Text = "You're Right!";
}
}
答案 0 :(得分:2)
您的answer
变量是click事件处理程序的本地变量。它不存在于它之外。您必须定义一个字段:
int answer;
protected void Button1_Click(object sender, EventArgs e)
{
answer = 5;
}
作为一般规则:花括号内的所有内容仅在这些大括号内可见(除非您可以定义可见性,例如public
或internal
)。这称为scope。
请注意,一旦发送页面,该值就会丢失。如果要保留跨请求的值,则必须以更永久的方式存储值,例如在视图状态中。