我無法理解在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