我正在使用winforms在C#中开发一个应用程序。我对C ++很不错,但对C#来说很新,所以请原谅我的无知。
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
class obj
{
private int member;
public obj(int n)
{ member = n; }
}
obj[] obj_arr = new obj[10];
obj_arr[0] = new obj(4); // Problem Here
}
}
这是我正在尝试做的一个非常简化的示例,但正如您所看到的,我想声明一组用户定义的对象。我遇到的问题是,当我尝试初始化单个数组成员时,编译器给我一个错误。实际上它会产生一些错误。 obj_arr [0]突出显示错误,表示它是一个字段但正被用作类型。 =也会突出显示错误,该错误表示=是类,结构或接口声明中的无效标记。最后obj(4)突出显示错误,说方法必须有返回类型。
我有点难过,任何帮助都会非常感激。
新代码
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
obj_arr[0] = new obj(4); // Problem Here
}
class obj
{
private int member;
public obj(int n)
{ member = n; }
}
obj[] obj_arr = new obj[10];
obj o1 = obj_arr[0];
}
答案 0 :(得分:5)
您正在尝试在类定义中执行代码。仅在方法之外发生成员初始化。将该代码移动到另一个方法或构造函数:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
obj_arr[0] = new obj(4); // Problem Here
o1 = obj_arr[0];
}
class obj
{
private int member;
public obj(int n)
{ member = n; }
}
obj[] obj_arr = new obj[10];
obj o1;
}
这应该使所有编译器错误消失(一个语法错误导致另一个)。