VB.NET で配列の宣言、糞面倒くせえ

まあ、型宣言の必要ない Perl を使うことが多いから色々不満なだけだけど・・・(^^;

VB.NET で配列使うの、糞面倒くせえ。

Dim areaSubTotal(,) As Integer
For i = 0 To 1
    For j = 0 To 24
        areaSubTotal(i, j) = 0
    Next
Next

とかしちゃうと、「オブジェクト参照がオブジェクト インスタンスに設定されていません。」になっちゃう。

まあ、これだと「値が割り当てられる前に使用されています。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にせえや!!・・・と思った話。
Clip to Evernote

トラックバック(0)

このブログ記事を参照しているブログ一覧: VB.NET で配列の宣言、糞面倒くせえ

このブログ記事に対するトラックバックURL: http://blog.netandfield.com/mt/mt-tb.cgi/3334

コメントする

このブログ記事について

このページは、shinodaが2015年2月26日 12:45に書いたブログ記事です。

ひとつ前のブログ記事は「ピッグ・ワンです!「トンカツ載せミートソーススパゲティー」」です。

次のブログ記事は「中国地方の獣害凄すぎて笑える(^^;」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら