我收到此代码的编译错误:
private void button1_Click_1(object sender, EventArgs e)
{
CheckBox[] c = new CheckBox[10];
for (int i = 0; i < c.Length; i++)
{
for (int j = 1; j < c.Length; j++)
{
c[i] = new CheckBox();
c[j] = new CheckBox();
c[i].Location = new Point(5, i * 20);
c[j].Location = new Point(j * 20, 20);
this.Controls.Add(c[i]);
this.Controls.Add(c[j]);
}
}
我想和#34;匹配&#34;全局变量。
我的编译错误是: &#34;内部类testprogram.Matching修饰符&#39; static&#39;中的非法静态声明只允许在常量变量声明中
在初始化期间使用静态非最终变量。&#34;
不知道错误的含义,也不知道如何修复错误。 提前谢谢!
答案 0 :(得分:2)
这是因为您的Matching
类位于另一个名为testingProgram
的类中,而不是static
。
只有当内部类本身为static
时,Java才允许内部类中的static
个字段。您可以通过多种方式解决此问题:
Matching
设为static
内部类,Matching
设为顶级课程,或static int match
最终,即final static int match
答案 1 :(得分:0)
在某个静态类(例如main)中创建变量,并确保将其传递给此类的构造函数。我不知道你为什么要这样做,但这很难的原因是因为这不是一个好主意。如果您需要保存“匹配”状态,请提供更多信息。
public static void main() {
int match;
Matching m = new Matching(match);
}