如何在另一个方法中使用受保护方法中的变量

时间:2017-10-30 22:27:00

标签: c# asp.net webforms

我正在尝试重新创建我制作的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!";
    }
}

1 个答案:

答案 0 :(得分:2)

您的answer变量是click事件处理程序的本地变量。它不存在于它之外。您必须定义一个字段:

int answer;
protected void Button1_Click(object sender, EventArgs e)
{
    answer = 5;
}

作为一般规则:花括号内的所有内容仅在这些大括号内可见(除非您可以定义可见性,例如publicinternal)。这称为scope

请注意,一旦发送页面,该值就会丢失。如果要保留跨请求的值,则必须以更永久的方式存储值,例如在视图状态中。