方法 : 配列変数を初期化する
更新 : 2007 年 11 月
配列は、New (Visual Basic) 句の一部として、作成と同時に初期化できます。また、後続の代入ステートメントで、初期化することもできます。
初期化できる配列の要素は、次のとおりです。
配列の次元の長さが指定される、インデックスの上限
いくつかの配列の要素、またはすべての配列の要素の値
これらのうちのいずれかを、他方を初期化せずに初期化できます。しかし、要素の値を指定して、上限を指定しない場合、指定した値の数によって上限が決まります。
作成時に、New 句で配列を初期化するには
New 句では、かっこの内側でインデックスの上限を指定し、中かっこ ({}) の内側で要素の値を指定します。次の例では、変数を宣言、作成、および初期化して、文字型 (Char) (Visual Basic) の要素と共に配列を保持し、上限および値を指定します。
Dim testChars As Char() = New Char(2) {"%"c, "&"c, "@"c}
このステートメントの実行の後で、変数 testChars の配列が長さ 3 になり、インデックス 0 からインデックス 2 の要素によって、初期化された値が保持されます。上限および値の両方を指定した場合、インデックス 0 から上限までの、すべての要素の値を含める必要があります。
Char データ型への文字リテラルを強制する、リテラルの型文字 c に留意してください。既定では、型文字がない場合、引用符 (" ") に囲まれたリテラルは String を使用します。
New 句で要素の値を指定した場合は、インデックスの上限を指定する必要はありません。次の例では、変数を宣言、作成、および初期化し、ブール型 (Boolean) (Visual Basic) の要素と共に配列を保持し、要素の値だけを指定します。
Dim answers As Boolean() = New Boolean() {True, True, False, True}
このステートメントの実行の後で、変数 answers の配列の長さが 4 になり、インデックス 0 からインデックス 3 の要素によって、初期化された値が保持されます。
要素を初期化せずに、インデックスの上限を初期化できます。この方法で配列を作成した場合、後続の代入ステートメントを使用して、それぞれの要素値を初期化する必要があります。
後続の代入ステートメントの配列を初期化するには
配列変数の宣言で、インデックスの上限を指定します。
1 つ以上の代入ステートメントを使用します。各代入ステートメントによって、配列の要素のいずれかに値が割り当てられます。次の例では、変数を宣言および作成し、文字列型 (String) (Visual Basic) の要素と共に配列を保持し、後続のステートメントで 2 つの要素の値を指定します。
Dim comments(30) As String comments(0) = "This is the first comment." comments(5) = "This is the sixth comment."
これらのステートメントの実行の後で、変数 comments の配列の長さが 31 になり、インデックス 0 および 5 の要素によって、初期化された値が保持され、他の 29 の要素によって既定値が保持されます。この方法で配列を初期化する場合、一部の要素だけを初期化し、その他の要素をスキップできます。
または
ReDim ステートメント (Visual Basic) を使用して、配列の長さを初期化します。
ReDim comments(5)
このステートメントの実行の後で、変数 comments の配列が長さ 6 になり、すべての要素によって既定値が保持されます。
メモ : インデックスの上限は、1 か所でだけ初期化できます。配列の変数名の後のかっこ内の上限を指定した場合、New 句を使用できません。New 句でかっこ内の上限を指定した場合、変数名の後のかっこを空にしておく必要があります。