对象数组初学者

时间:2014-04-22 21:11:19

标签: c# winforms

我正在使用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];

}

1 个答案:

答案 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;
}

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