以下代码
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button3_Click(object sender, EventArgs e)
{
public int x = 5;
MessageBox.Show(x.ToString());
}
}
我有以下错误
无效的表达术语' public'
在public int x = 5;
为什么我不能在事件处理程序中定义公共对象?
答案 0 :(得分:2)
public
是类型(例如public class Foo
)和类型成员(例如类的方法,属性或字段,例如button3_Click
)的访问修饰符。
您试图将方法中的局部变量声明为public,这是不允许的。
修复编译错误的一种方法是从button3_Click
:int x = 5;
而不是public int x = 5;
中的局部变量声明中删除访问修饰符。如果您只需要访问x
中的变量button3_Click
,就应该使用此项,并且您很高兴每次调用button3_Click
时都会实例化一个新变量。
修复编译错误的另一种方法是将x
从局部变量更改为字段。通过更改定义x
的位置,您可以将其声明为Form1
上的字段,而不是button3_Click
范围内的本地变量。
尝试:
public partial class Form1 : Form
{
public int x;
public Form1()
{
InitializeComponent();
}
private void button3_Click(object sender, EventArgs e)
{
x = 5;
MessageBox.Show(x.ToString());
}
}
如果您需要从程序中的其他方法访问x
字段,或者希望在button3_Click
Form1
方法的多个调用中保留值,则此选项更为可取实例。