我无法理解在C#中创建锯齿阵列的问题。如果你看下面的代码,它编译得很好。但是如果我将两行分配给数组“位置”的值并将它们从方法内移到类本身内,编译器就会开始抱怨出现很多奇怪的错误。在类中设置锯齿阵列值
起初我以为它是因为在一个类中使用'new'关键字(一个类只是一个定义,而'new'是指一个实例......你不能在一个实例中有一个实例定义,你能吗?)。但后来我注意到,在“位置”初始化中使用'new'关键字即使在类中初始化也是可以的。请解释。
public class Place
{
string[][] places = new string[2][];
public void enumerate()
{
places[0] = new string[] { "Canada", "United States" };
places[1] = new string[] { "Calgary", "Edmonton", "Toronto" };
Console.WriteLine(places[0][1]);
}
}
编辑:是显式的,运行接收
public class Place
{
string[][] places = new string[2][];
places[0] = new string[] { "Canada", "United States" };
places[1] = new string[] { "Calgary", "Edmonton", "Toronto" };
public void enumerate()
{
Console.WriteLine(places[0][1]);
}
}
错误“(新的‘表达阵列大小不能在一个变量声明尝试用初始化)’指定的”,“时产生的误差无效令牌= {,在类”‘命名空间不能直接包含成员如字段或方法’
为什么你会使用锯齿阵列呢?它最好作为类对象。 – OneFineDay
我不确定你的意思。忽略所使用的值的含义。这是一个完全没有意义的数组。我只是想知道为什么它不会编译。 – Snik
如何不编译?它为我输出=“美国”。 – OneFineDay