まず、配列の宣言について見ていきます。 配列を格納する変数を宣言するには、次のようにします。

配列変数の宣言
Imports System

Class Sample
  Shared Sub Main()

    Dim arr1 As String()  ' String型の配列を格納する変数
    Dim arr2 As Integer() ' Integer型の配列を格納する変数
    Dim arr3 As Double()  ' Double型の配列を格納する変数

    ' 次のように丸括弧を変数名の後ろに付けても同じ
    'Dim arr1() As String  ' String型の配列を格納する変数
    'Dim arr2() As Integer ' Integer型の配列を格納する変数
    'Dim arr3() As Double  ' Double型の配列を格納する変数

  End Sub
End Class

VBでは、丸括弧( )を変数名の後ろに付けた場合も、型名の後ろに付けた場合も、同じ配列変数として扱われます。 どちらも意味は同じです。

このようにして宣言した変数は、配列が格納できる変数が用意されるだけで、実際にはどの配列も参照していない(配列の実体を参照していない)状態となっています。 C#では未初期化の変数、VBではヌル参照の変数となります。 この状態から、配列を作成して変数に代入したり、他の変数が参照している配列やメソッドの戻り値として返される配列などを変数に代入したりする必要があります。