对象数组初学者
本文关键字:初学者 数组 对象 | 更新日期: 2023-09-27 17:59:21
我正在用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];
}
您正试图在类定义中执行代码。只有成员初始化可以在方法之外进行。将该代码移动到另一个方法或构造函数:
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;
}
这应该会使所有的编译器错误消失(一个语法错误导致另一个)。