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

本文关键字:数组 类变量 构造函数 初始化 | 更新日期: 2023-09-27 18:33:07

以下代码给出错误:

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

但这些都不起作用。

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

数组

是一个对象,需要你显式使用new来构造它们。

您可以使用:

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

或者更短的语法:

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

附带说明一下,如果你在一个语句中编写数组声明和初始化,你实际上可以像以前一样编写它们:

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

但是,由于已values声明为字段,因此这在值初始化的构造函数中不起作用,因为初始化时与声明分开。

尝试以下

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

这将起作用:

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

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

延伸阅读

  • 数组教程以获取更多示例。