それでは、二次元配列にした場合はどうなるのか確認してみた。
具体的には、キャストの箇所で
> 型 'System.Int32[*,*]' のオブジェクトを型 'System.Int32[,]' にキャストできません。
とか言われて怒られることを期待したのだが…
早速実験。
Private Sub Button1_Click(...) Handles Button1.Click Dim a As System.Array = _ System.Array.CreateInstance(GetType(Integer), New Integer() {2, 3}, New Integer() {1, 2}) Dim b As Integer(,) Debug.Print(TypeName(a)) ' Integer(,) と出力 b = CType(a, Integer(,)) ' 例外は出ない。 Dim value As Integer For index1 As Integer = LBound(b, 1) To UBound(b, 1) For index2 As Integer = LBound(b, 2) To UBound(b, 2) value = index1 * 10 + index2 b(index1, index2) = value Next Next For index1 As Integer = 1 To 2 For index2 As Integer = 2 To 4 value = b(index1, index2) Debug.Print(value.ToString) Next Next End Sub
通った…どうしてですか… >_<;