无效的表达式项 'public'

Invalid expression term 'public'

对于下面的代码

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void button3_Click(object sender, EventArgs e)
    {
        public int x = 5;
        MessageBox.Show(x.ToString());
    }
}

我有以下错误

Invalid expression term 'public'

上线public int x = 5;

为什么我不能在事件处理程序中定义 public 个对象?

public 是类型(例如 public class Foo)和类型成员(例如 class 上的方法、属性或字段,例如 button3_Click 的访问修饰符).

您试图在方法内将局部变量声明为 public,这是不允许的。

修复编译错误的一种方法是从 button3_Click 中的局部变量声明中删除访问修饰符:int x = 5; 而不是 public int x = 5;。如果您只需要访问 button3_Click 中的变量 x 并且您很高兴每次调用 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 字段,或者您希望在 [=22] 上多次调用 button3_Click 方法时保留值,则最好使用此选项=] 实例。

如果是这种情况,您还可以决定将 x 设为 property instead of a field,以便更好地控制读取、写入、and/or 计算 x.