在方法中更改全局变量

时间:2016-11-18 15:56:14

标签: c#

我有以下代码:

namespace WindowsFormsApplication1
{
    public static int lb1;

    public partial class Form1 : Form
    {
        private void button1_Click(object sender, EventArgs e)
        {
            int lb1 = 1;
        }
    }
}

我的问题是,当我点击lb1时,我想更改button1变量,但每次运行程序时,它都在运行" 0",而不是" 1& #34;

我在做什么有什么问题?

3 个答案:

答案 0 :(得分:2)

此:

@user.functions = [@functions]
@user.save
expect(@user.planned_items.count).to eq(1)
@user.functions = []
@user.save

与此不同的变量:

private void button1_Click(object sender, EventArgs e)
{
    int lb1 = 1;
}

在第一种情况下,您实例化一个 NEW 局部变量(尽管它具有相同的名称)并且它仅存在于方法的上下文中!

如果要访问方法中的public static int lb1; 变量,只需使用它的名称:

static

不要在它前面写private void button1_Click(object sender, EventArgs e) { lb1 = 1; } ,因为这样做可以创建一个全新的变量。更改它不会影响int类变量。

我几乎监督了最大的错误,你必须在类中声明变量:

static

答案 1 :(得分:0)

您在button1_Click方法中声明了一个新的局部变量。

private void button1_Click(object sender, EventArgs e)
    {
        lb1 = 1;
    }

是你所追求的。

答案 2 :(得分:0)

您应该将变量放在班级

你不能像在c ++中那样创建全局变量

您应该在int

之前删除lb1 = 1;

喜欢这个

public partial class Form1 : Form
    {
        public static int lb1;

        private void button1_Click(object sender, EventArgs e)
        {
            lb1 = 1;
        }
    }