配列の宣言と要素数

タグの編集
投稿者 あにす  (社会人) 投稿日時 2008/11/9 07:21:00
Dim a(10) As Integer
Console.Write(a.Length)

を実行すると
11
って表示されますね。知りませんでした。
え?10じゃないの!?なぜ???と。
確かに講座をよく読むと
>添字の範囲はDimなどで宣言するときに指定します。
って記述があります。"要素数"ではなくて"添え字の範囲"と…。
Dim a(10) As Integer
For i As Integer = 0 To a.Length - 1
    a(i) = hogehoge
Next

と書いてもエラーにならないから気付かなかったんですね…
投稿者   (社会人) 投稿日時 2008/11/9 08:09:50
http://www.microsoft.com/japan/msdn/net/vbnetref/vbnetref3-3.aspx
ここ読むともっとわかるかも。

VB6まではOption Baseで指定できてたけど、.NETはできないのねぇ・・・。
投稿者 あにす  (社会人) 投稿日時 2008/11/9 09:03:45
とても参考になるページへのリンクありがとうございます。
Dim a As Integer() = New Integer(10)
と書いて、Integerにコンストラクタなんてないぞ!って怒られた人としては
Dim a As Integer() = New Integer(10){}
でいいってのはなるほどーって感じです。こうやって区別するんですね。

Option Baseって添え字を1スタートにするやつですよね?
これ以上紛らわしいのは勘弁です…(笑)