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;
}
}
}