无效的表达术语“公共”
Posted
技术标签:
【中文标题】无效的表达术语“公共”【英文标题】:Invalid expression term 'public' 【发布时间】:2016-09-02 17:06:35 【问题描述】:如下代码
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 int x = 5;
为什么我不能在事件处理程序中定义公共对象?
【问题讨论】:
方法中的public
关键字有什么用?
为什么是public int x = 5;
?
我只是测试在事件处理程序中声明公共对象
有时我需要在事件处理程序中声明公共对象,例如“连接”
改为使用x
类字段。
【参考方案1】:
public
是类型(例如public class Foo
)和类型成员(例如类上的方法、属性或字段,例如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
字段,或者您希望在Form1
实例上多次调用button3_Click
方法时保留值,则此选项更可取。
如果是这种情况,您还可以决定将x
设为property 而不是field,以便更精细地控制x
的读取、写入和/或计算.
【讨论】:
以上是关于无效的表达术语“公共”的主要内容,如果未能解决你的问题,请参考以下文章
术语:在 Thompson 的书中,Haskell 中“类型表达式”的精确定义是啥?
是否有用于反向引用的大写/小写版本的正则表达式替换术语? [复制]