配列の初期化には、様々な書き方がありますので、それぞれご紹介します。
配列の宣言と同時に初期化
Dim Array1() As String = New String() {"aaa", "bbb", "ccc"}
Dim Array2() As String = {"aaa", "bbb", "ccc"}
配列の宣言と同時に初期化した例です。
New String() を省略する事もできます。
下記のように、要素数を指定するとエラーとなります。
Dim Array1(2) As String = New String() {"aaa", "bbb", "ccc"} 'エラー
Dim Array2(2) As String = {"aaa", "bbb", "ccc"} 'エラー
型を指定しない場合の初期化
Dim Array3 = {"aaa", "bbb", "ccc"}
Dim Array4 = {10, 20, 30}
Dim Array5 = {10.0R, 20.0, 30.0}
Console.WriteLine(Array3.GetType().Name) ' 出力:String[]
Console.WriteLine(Array4.GetType().Name) ' 出力:Int32[]
Console.WriteLine(Array5.GetType().Name) ' 出力:Double[]
型を省略した書き方もできます。
型を自動判別し、適切な型で初期化されます。
下記のように、カッコをつけても問題ありません。
Dim Array3() = {"aaa", "bbb", "ccc"}
Dim Array4() = {10, 20, 30}
Dim Array5() = {10.0R, 20.0, 30.0}
スポンサーリンク
要素数を指定して初期化
Dim array6(5) As String
'Dim array7 As String(5) 'エラー
要素数を指定して初期化する場合の書き方です。
2番目の書き方はできません。
要素数に変数を利用する方法
Dim i As Integer = 2
Dim array8(i) As String
要素数に変数を設定する事もできます。
空の配列と再宣言 Redim
Dim array9() As String
'array9 = New String(5) 'エラー
ReDim array9(5)
空の配列を宣言しておく事もできます。
しかし、そのあと、Newを使って新しい配列を作る事はできません。
新しく配列を作る場合は、ReDimを使って配列を再宣言します。
通常の変数のような初期化はできない
Dim i As New Integer
Dim array10() As New String 'エラー
Dim array11(5) As New String 'エラー
Dim array12() As New String() 'エラー
Dim array13(5) As New String() 'エラー
Integer型のように、Newを使って初期化する事はできません。
以上、様々な配列の初期化方法でした。