use*_*012 3 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();
}
}
Run Code Online (Sandbox Code Playgroud)
我希望值包含a,b和c.
我也试过像这样在构造函数之外初始化数组.
private int[] values = {a, b, c};
Run Code Online (Sandbox Code Playgroud)
并在构造函数内完全初始化它,如下所示:
int[] values = {a, b, c};
Run Code Online (Sandbox Code Playgroud)
但这些都没有.
数组是一个对象,需要您明确地使用new它们来构造它们.
您可以使用:
values = new int[] {a, b, c};
Run Code Online (Sandbox Code Playgroud)
或者更短的语法:
values = new[] {a, b, c};
Run Code Online (Sandbox Code Playgroud)
另外,如果您在一个语句中编写数组声明和初始化,您实际上可以像编写它们一样编写它们:
int[] values2 = { a, b, c};
Run Code Online (Sandbox Code Playgroud)
但是,由于您已values声明为字段,因此在值初始化的构造函数中不起作用,因为您要从声明中单独初始化.