まあ、型宣言の必要ない Perl を使うことが多いから色々不満なだけだけど・・・(^^;
VB.NET で配列使うの、糞面倒くせえ。
Dim areaSubTotal(,) As IntegerFor i = 0 To 1For j = 0 To 24areaSubTotal(i, j) = 0NextNext
とかしちゃうと、「オブジェクト参照がオブジェクト インスタンスに設定されていません。」になっちゃう。
まあ、これだと「値が割り当てられる前に使用されています。Null 参照の例外が実行時に発生する可能性があります。」な警告が発生するので、とりあえず Nothing をセットして、
Dim areaSubTotal(,) As Integer = Nothing
とかしても、「オブジェクト参照がオブジェクト インスタンスに設定されていません。」エラーになっちゃう。まあ、これは当然なんだけど(^^;
仕方ないので、
Dim areaSubTotal(,) As Integer = {}
と宣言してインスタンスを作ると、これだと length = 0 の配列インスタンスが作られちゃうので、いざ値をセットしようとした時に「インデックスが配列の境界外です。」なエラーになっちゃう。
じゃあ、配列の数をちゃんとセットしとこうと、
Dim areaSubTotal(1, 24) As Integer = {}
としたら「明示的な初期化は、明示的な境界で宣言された配列に対しては許可されません。」だって(^^;
結局、
Dim areaSubTotal(,) As Integer = New Integer(1, 24) {}
こうか。
これでOK。
糞面倒くせえ。
いや、「オブジェクト指向だからしょうがない。配列もクラスだから」と言いたいんだろうが、これはコードの書き方の問題や!!
内部的にどうにでもできるやろ。せめて、
Dim areaSubTotal(1, 24) As Integer = {}
この書き方くらいはOKにせえや!!・・・と思った話。
コメントする