アプリ版:「スタンプのみでお礼する」機能のリリースについて

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 に書き換えるならどう書いたららいいのでしょうか?よろしくお願いします。

A 回答 (2件)

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。

この回答への補足

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

補足日時:2009/08/05 15:47
    • good
    • 0

追記。



Arは「単精度浮動小数点数配列の先頭ポインタの配列」であり、要素数は5つ。

なので「Ar[0]」や「Ar[1]」は「単精度浮動小数点数配列の先頭ポインタ」になる。

図にすると
+--------+
|配列へのポインタ|
+--------+
|配列へのポインタ|
+--------+
|配列へのポインタ|
+--------+
|配列へのポインタ|
+--------+
|配列へのポインタ|
+--------+
と言う感じ。

で、それぞれのポインタは「単精度浮動小数点数が5つある配列」を指している。

結果として「単精度浮動小数点数が5つある配列が、5つある」と言う事になる。

詳しくは
http://msdn.microsoft.com/ja-jp/library/dd314345 …
の「3-3-6 多段階配列」の図3-15を参照する事。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!