投稿者 魔界の仮面弁士  () 投稿日時 2008/7/11 18:26:00
> Dim aaa() As Integer  
> Dim bbb As Integer()  
違いは全くありません。 
コンパイルすると、どちらも同じILに変換されます。 
 
 
VB においては歴史的な経緯から、変数名に括弧をつけた 
 Dim a() As Integer 
のコードが多く使われます。初期配列サイズを指定する 
 Dim a(5) As Integer 
の記述が行えるのも、こちらの記法のみです。 
 
 
では、Integer() の記法はどのような時に使うかというと 
 Function Test() As Integer() 
のように、配列を返す関数を定義する場合などです。 
また、C# の配列宣言では、型名の方に括弧が付くため、 
複数の言語を使い分ける人達の間では、統一感のために 
 Dim a As Integer() 
の方の構文を好む場合もあるようです。 
 
ただしこちらの記法だと、初期配列サイズを指定する 
記法は使えません。(Dim a As Integer(5) は NG) 
 
 
なお、みどりさんが書かれた ReDim を使う初期化や 
 Dim a() As Integer = {1, 2, 0} 
 Dim a As Integer() = {1, 2, 0} 
といった初期化については、変数名括弧と型名括弧の 
どちらの表記法でも利用できます。