对象数组初学者

本文关键字:初学者 数组 对象 | 更新日期: 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;
}

这应该会使所有的编译器错误消失(一个语法错误导致另一个)。