Share via


HOW TO:在 Visual Basic 中初始化陣列變數

您可以使用「陣列常值」(Array Literal) 在建立陣列時以初始值填入該陣列。 您可以將陣列常值包含做為 New 子句的一部分,並明確指定型別。 如果您沒有指定陣列元素的型別,則會從陣列常值中的值推斷其型別。 如需如何推斷型別的詳細資訊,請參閱 Visual Basic 中的陣列中的<在陣列填入初始值>。

若要使用陣列常值初始化陣列變數

  • 在 New 子句中,或者是您指派陣列值時,在大括號 ({}) 內提供元素值。 下列範例示範用於宣告、建立和初始化變數的數種方式,讓變數所包含的陣列元素為型別 Char。

    ' The following three lines of code create the same array.
    Dim chars1() As Char = New Char(2) {"%"c, "&"c, "@"c}
    Dim chars2 = {"%"c, "&"c, "@"c}
    Dim chars3() As Char = {"%"c, "&"c, "@"c}
    

    執行這些陳述式後,所建立的陣列長度為 3,從索引 0 到索引 2 的元素都有初始值。 如果同時提供上限和元素值,則必須為索引 0 到上限的每個元素加入值。

    請注意,如果您以陣列常值提供元素值,則不必指定索引上限。 如果沒有指定索引上限,則會依據陣列常值中值的數目推斷陣列大小。

若要使用陣列常值初始化多維陣列變數

  • 在大括號 ({}) 內使用大括號巢狀化數值。 請確認這些巢狀陣列常值全都會推斷為相同型別和長度的陣列。 下列程式碼範例會顯示數種多維陣列初始化的範例。

    Dim ticTacToe = {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}}
    Dim customerData = {{"City Power & Light", "http://www.cpandl.com/"},
                        {"Wide World Importers", "http://wideworldimporters.com"},
                        {"Lucerne Publishing", "http://www.lucernepublishing.com"}}
    
    ' You can nest array literals to create arrays that have more than two 
    ' dimensions.
    Dim twoSidedCube = {{{1, 2}, {3, 4}}, {{5, 6}, {7, 8}}}
    
  • 您可以明確指定陣列界限,或是省略界限資訊讓編譯器依據陣列常值中的值推斷陣列界限。 如果您提供上限與值,則必須包含每個維度內從索引 0 到上限的每個元素值。 下列範例示範用於宣告、建立和初始化變數的數種方式,讓變數所包含的二維陣列元素為型別 Short。

    ' The following three lines of code create the same array.
    Dim startingScores1(,) As Short = New Short(1, 2) {{10, 10, 10}, {10, 10, 10}}
    Dim startingScores2 = {{10S, 10S, 10S}, {10S, 10S, 10S}}
    Dim startingScores3(,) As Short = {{10, 10, 10}, {10, 10, 10}}
    

    執行這個陳述式後,所建立的陣列包含 6 個初始化元素,其索引為 (0,0)、(0,1)、(0,2)、(1,0)、(1,1) 和 (1,2)。 每個陣列位置都包含值 10。

若要使用陣列常值初始化不規則陣列變數

  • 在大括號 ({}) 內巢狀化物件值。 雖然您也可以巢狀化用於指定不同長度陣列的陣列常值,但在不規則陣列 (Jagged Array) 的案例中,請確認巢狀陣列常值是以括號 (()) 括住的。 括號會強制評估巢狀陣列常值,而產生的陣列就會用來做為不規則陣列的初始值。 下列程式碼範例會顯示 2 個不規則陣列初始化範例。

    ' Create a jagged array of arrays that have different lengths.
    Dim diagonal = {({0, 0, 0}), ({0, 0}), ({0})}
    
    ' Create a jagged array of Byte arrays.
    Dim images = {New Byte() {}, New Byte() {}, New Byte() {}}
    

請參閱

工作

疑難排解陣列 (Visual Basic)

概念

Visual Basic 中的陣列