DOBON.NET DOBON.NETプログラミング掲示板過去ログ

配列の記述方法

環境/言語:[WindowsXP VB.NET2005]
分類:[.NET]

こんにちは。
大変初歩の初歩の質問で申し訳御座いませんが、ふとした疑問にお答えください。
<<例>>
 Dim ValueA() As String = New String() {"A", "B"}
Dim ValueB As String() = New String() {"A", "B"}
今までVB6を使用しておりましたのでValueAの宣言方法を行っておりましたが
良くTipsページなどでValueBの記述方法が見受けられます。
動作としては同じと思われるのですが、ValueA方法とValueB方法とは
どう違うのでしょうか?(機能・速度など)
以上、お仕事に飽きたらで結構ですので、お教えください。
「Dim ValueA() As String」は宣言時に配列の割り当てが可能ですが、
「Dim ValueB As String() 」は宣言時に配列の割り当てが出来ません。
早速のレス、有り難うございます。
■No22919に返信(もょもとさんの記事)
> 「Dim ValueB As String() 」は宣言時に配列の割り当てが出来ません。
「Dim ValueB As String() = New String() {"A", "B"}」でエラーが発生するって事でしょうか?
Dim ValueA() As String = New String() {"A-A", "A-B"}
Dim ValueB As String() = New String() {"B-A", "B-B"}
For Each A As String In ValueA
Console.WriteLine(A)
Next
For Each B As String In ValueB
Console.WriteLine(B)
Next
で、エラーも出ませんし、出力ウィンドウに結果も出ますし・・・
「宣言時」ってのを、私がすごく勘違いしていますぅ??(^^;)
Dim ValueA(1) As String
Dim ValueB As String(1)

↑これをコピペしてみて下さい。下はエラーになりますよ。
  • 題名: Re[4]: 配列の記述方法
  • 著者: きいよ
  • 日時: 2008/09/03 16:38:18
  • ID: 22923
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
ひでさん
もょもと さんが、
> 「Dim ValueA() As String」は宣言時に配列の割り当てが可能ですが、
> 「Dim ValueB As String() 」は宣言時に配列の割り当てが出来ません。
と書かれている事の補足になれば。

@ITに、このような記載があります。参考までに。
http://www.atmarkit.co.jp/fdotnet/dotnettips/275vbarray/vbarray.html
■No22918に返信(ひでさんの記事)
>  Dim ValueA() As String = New String() {"A", "B"}
> Dim ValueB As String() = New String() {"A", "B"}
> 今までVB6を使用しておりましたのでValueAの宣言方法を行っておりましたが
> 良くTipsページなどでValueBの記述方法が見受けられます。
> 動作としては同じと思われるのですが、ValueA方法とValueB方法とは
> どう違うのでしょうか?(機能・速度など)

記述方法が違うだけで、それ以外には差はありません。

> Dim ValueA(1) As String
> Dim ValueB As String(1)

もょもとさんのおっしゃるとおり、
()の位置を単純に置き換えて記述することはできません。
後者の場合は以下のように書くことで前者と同じことを実現できます。

Dim ValueB As String() = New String(1){}
  • 題名: Re[2]: 配列の記述方法
  • 著者: ひで
  • 日時: 2008/09/03 17:25:47
  • ID: 22925
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
もょもとさん、きいよさん、よねKENさん、お付き合い有り難うございます。
なるほど、なるほどφ(。。)
固定変数長さにする場合に注意が必要で、その他は同じ的な機能と言う事が
分かりました。
VB.NETになってから、同じ様な機能でありながら記述が異なる事が多くなり
戸惑っておりました。(これもその1つです)
どうも皆様有り難うございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板