如何:在 Visual Basic 中初始化数组变量

创建数组时,可使用数组文本为数组填充初始值。 可以在 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}}
    

    执行此语句后将创建一个数组,其中包含六个初始化的元素,它们的索引分别为:(0,0)、(0,1)、(0,2)、(1,0)、(1,1) 和 (1,2)。 每个数组位置都包含值 10。

使用数组文本初始化交错数组变量

  • 将对象值嵌套在大括号 ({}) 中。 虽然对于交错数组,也可以嵌套指定不同长度数组的数组文本,但请确保将嵌套的数组文本括在小括号 (()) 中。 小括号将强制对嵌套的数组文本求值,得到的数组将用作交错数组的初始值。 下面的代码示例演示了交错数组的两种初始化方式。

    ' 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)