• 締切済み

C# 多次元配列

C#で書かれたコードをVB.NETに書き換えようとしています。簡単なのでしょうが、C#をよく理解していないので書き換え方が分かりません。 多次元配列の部分で、 float[][] Ar = new float[5][]; と宣言しているのに次のループで、 Ar[d] = new float[5]; とあります。 コード: float[][] Ar = new float[5][]; for (int d = 0; d < 5; d++) { Ar[d] = new float[5]; } float s = 100; ...... ...... Ar[i][j] = s; この部分をVB.NET に書き換えるならどう書いたららいいのでしょうか?よろしくお願いします。

みんなの回答

回答No.2

追記。 Arは「単精度浮動小数点数配列の先頭ポインタの配列」であり、要素数は5つ。 なので「Ar[0]」や「Ar[1]」は「単精度浮動小数点数配列の先頭ポインタ」になる。 図にすると +--------+ |配列へのポインタ| +--------+ |配列へのポインタ| +--------+ |配列へのポインタ| +--------+ |配列へのポインタ| +--------+ |配列へのポインタ| +--------+ と言う感じ。 で、それぞれのポインタは「単精度浮動小数点数が5つある配列」を指している。 結果として「単精度浮動小数点数が5つある配列が、5つある」と言う事になる。 詳しくは http://msdn.microsoft.com/ja-jp/library/dd314345.aspx の「3-3-6 多段階配列」の図3-15を参照する事。

回答No.1

Dim Ar()() As Single Dim d As Integer Ar = New Single(5)(){} For d = 0 To 4 Ar(d) = New Single(5) Next ...... ...... Ar(i)(j) = s もっとスマートに書けるけど、そのまんま書くとこうなるw。

Area4205
質問者

補足

VBはC#と違って、Newメソッド、この場合は"Ar(d) = New ○○型"はコンストラクタになります。Single型のコンストラクタはありません。そこまでは辿り着けるのですが、そこからが解りません。。。

関連するQ&A

専門家に質問してみよう