在构造函数中初始化数组类变量

时间:2013-09-26 20:00:08

标签: c# arrays initialization

以下代码给出了错误:

public class SomeClass
{
    private int a;
    private int b;
    private int c;
    private int[] values;

    public SomeClass()
    {
        a = 1;
        b = 2;
        c = 3;
        values = {a, b, c};
    }

    public static void Main()
    {
        SomeClass sc = new SomeClass();
    }

}

我希望值包含a,b和c。

我也试过在构造函数之外初始化数组。

private int[] values = {a, b, c};

并在构造函数内完全初始化它,如下所示:

int[] values = {a, b, c};

但这些都没有。

3 个答案:

答案 0 :(得分:5)

数组是一个对象,需要您明确使用new来构造它们。

您可以使用:

values = new int[] {a, b, c};

或更短的语法:

values = new[] {a, b, c};

另外,如果您在一个语句中编写数组声明和初始化,您实际上可以像编写它们一样编写它们:

int[] values2 = { a, b, c};

但是,由于您将values声明为字段,因此在值初始化的构造函数中不起作用,因为您要从声明中单独初始化。

答案 1 :(得分:0)

尝试以下

int[] values = new int[]{a, b, c};

答案 2 :(得分:0)

这样可行:

values = new[] { a, b, c };

values = new int[] { a, b, c };

进一步阅读