Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 更改方法中的全局变量_C# - Fatal编程技术网

C# 更改方法中的全局变量

C# 更改方法中的全局变量,c#,C#,我有以下代码: namespace WindowsFormsApplication1 { public static int lb1; public partial class Form1 : Form { private void button1_Click(object sender, EventArgs e) { int lb1 = 1; } } } 我的问题是,当我单击按钮1时,我

我有以下代码:

namespace WindowsFormsApplication1
{
    public static int lb1;

    public partial class Form1 : Form
    {
        private void button1_Click(object sender, EventArgs e)
        {
            int lb1 = 1;
        }
    }
}
我的问题是,当我单击
按钮1
时,我想更改
lb1
变量,但每次我运行程序时,它都运行“0”,而不是“1”


我所做的有什么问题吗?

您正在button1\u Click方法中声明一个新的局部变量

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

是您所追求的。

您应该将变量放入类中

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

并且您应该在
lb1=1之前删除
int

像这样

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

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

与此变量不同:

public static int lb1;
在第一种情况下,实例化一个新的局部变量(尽管它有相同的名称),并且它只存在于方法的上下文中

如果要访问方法中的
静态
变量,只需使用其名称:

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

我几乎看到了最大的错误,您必须在类中声明变量:

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

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

你没有分配给全局变量,而是在重新创建变量。你有两个不同的变量。哦,真的,那么我应该怎么做呢?删除方法中的
int
关键字,并将
public static int
移到类中。你的代码甚至不会编译,因为你不能在类外声明字段。
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public static int lb1;

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