簡體   English   中英

C# 鋸齒狀數組未初始化

[英]C# jagged array not initializing

試圖制作一個有 10 列和 10 行的 2D 鋸齒狀數組。 當我嘗試初始化第一列時,它出現了多個錯誤,我不確定我做錯了什么。

class Program
{
    int[][] board = new int[10][];
    board[0] = new int[5];
    ...
}

您必須將任何不是聲明的代碼放入方法中

class Program
{
    static int[][] board = new int[10][];

    static void Main()
    {
        board[0] = new int[10];
        ...
    }
}

這里board是類的一個字段。 您還可以將其設置為方法內的局部變量:

class Program
{
    static void Main()
    {
        int[][] board = new int[10][];
        board[0] = new int[10];
        ...
    }
}

類字段和局部變量之間區別在於,如果該字段是公共的並且對於靜態字段“永遠”存在並且只要從該類創建的對象對於實例字段存在,則可以從外部訪問該字段,而局部變量可以只能在方法內訪問,並且通常只在方法調用持續期間有效(不討論迭代器方法等特殊情況)。

鋸齒狀數組在兩種情況下很有用

  1. 你有一個不是矩形的結構。
  2. 您希望能夠在不使用循環的情況下為其分配整行。

否則我會使用一個可以立即初始化的二維數組

int[,] board = new int[10, 10];

如果您希望數組有 10 行和 10 列,則不應使用鋸齒狀數組。 用:

int[,] board = new int[10, 10];

反而

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM