|
.NET TIPS VB.NETで配列を宣言するには?デジタルアドバンテージ 遠藤 孝信2005/03/11 |
![]() |
|
|
|
VB.NET(Visual Basic .NET)で配列(一次元配列)を使用する場合、その宣言や割り当て、初期化にはいくつかの記述方法がある。本稿ではそれらについてまとめる。
配列の宣言
まず配列の宣言には、次のように2つの記述方法がある。配列であることを示すカッコは変数名の後ろか型の後ろに記述できる。
Dim arrayA() As String
Dim arrayB As String()
ここでは文字列(String型)の配列を宣言している。このようにして宣言した配列には例えば次のようにして配列オブジェクトを作成し、その参照を代入することができる。
arrayA = New String() {"いち", "に", "さん"}
Console.WriteLine(arrayA.Length) ' 出力:3
配列の宣言と初期化
上記の例のように、配列を宣言し、初期化した配列オブジェクトを代入する場合には、それら2行のコードを次のようにして1行で記述できる。
Dim arrayC() As String = New String() {"いち", "に", "さん"}
そしてこの場合には、「New String()」部分を省略して次のように記述可能だ。
Dim arrayD() As String = {"いち", "に", "さん"} ' New String()を省略
配列の宣言と割り当て
配列は、その宣言時に配列の大きさを指定することにより、宣言と割り当てを同時に行うことができる。ただしこれは、次のように変数名の後ろにカッコを記述した場合のみである。
Dim arrayE(3) As String
Console.WriteLine(arrayC.Length) ' 出力:4
次のような記述はコンパイル・エラーとなる。
Dim arrayF As String(3) ' コンパイル・エラーとなる
この場合に注意が必要なのは、割り当てられた配列の要素数は「指定した値+1」となる点だ(上記の場合には(3)と記述しているので、配列の要素数は4となる)。
つまりこれは配列の要素数ではなく、配列の最後の要素のインデックス番号(添え字の上限値)を指定していることになる。なおVB 6と異なり、VB.NETでは配列のインデックス番号の始まりは常に0である。
ちなみに、この記述方法の場合には、次のように配列の大きさの指定を変数により指定可能だ。
Dim num As Integer = 3
Dim arrayG(num) As String
Console.WriteLine(arrayG.Length) ' 出力:4
As Newキーワードによる配列の初期化は不可
VB.NETでは、As Newキーワードにより変数の宣言とその初期化(インスタンス作成および代入)が可能だが、配列の場合にはAs Newキーワードは使用できない。
Dim arrayH(3) As New String ' コンパイル・エラーとなる
As Newキーワードの場合、配列を示すカッコを変数名ではなく型の後ろに記述するとコードの意味が変わってくる。例えば次の記述はコンパイル可能だが、これはDecimal型の配列を割り当てているわけではない。
Dim arrayI As New Decimal(3)
Console.WriteLine(arrayI) ' 出力:3
これは単にDecimal構造体(System名前空間)のコンストラクタを呼び出していることになる(カッコ内の「3」はコンストラクタのパラメータとなる)。VB.NETでは、配列のインスタンス化とコンストラクタの呼び出しを混同しやすいので注意してほしい。![]()
| カテゴリ:Visual Basic .NET 処理対象:データ型 使用ライブラリ:Arrayクラス(System名前空間) 使用ライブラリ:Decimal構造体(System名前空間) |
|
||||||||||||||||||||||||
| 「.NET TIPS」 |
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -


