配列の宣言と要素数 への返答

投稿で使用できる特殊コードの説明。(別タブで開きます。)
本名は入力しないようにしましょう。
投稿した後で削除するときに使うパスワードです。返答があった後は削除できません。
返答する人が目安にします。相手が小学生か社会人かで返答の仕方も変わります。
最初の投稿が質問の場合、質問者が解決時にチェックしてください。(以降も追加書き込み・返信は可能です。)
※「過去ログ」について書くときはその過去ログのURLも書いてください。

以下の返答は逆順(新しい順)に並んでいます。

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

Option Baseって添え字を1スタートにするやつですよね?
これ以上紛らわしいのは勘弁です…(笑)
投稿者   (社会人) 投稿日時 2008/11/9 08:09:50
http://www.microsoft.com/japan/msdn/net/vbnetref/vbnetref3-3.aspx
ここ読むともっとわかるかも。

VB6まではOption Baseで指定できてたけど、.NETはできないのねぇ・・・。
投稿者 あにす  (社会人) 投稿日時 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

と書いてもエラーにならないから気付かなかったんですね…