tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re: 多段階配列の宣言の仕方
投稿日: 2008/02/06(Wed) 15:12
投稿者よねKEN
> New宣言しろと怒られます。

そういうときは、実際に発生したエラーメッセージをコピペで記載するようにしてください。おそらく以下のようなエラーが出たのではないでしょうか。
「error BC31043: 構造体メンバとして宣言された配列を初期サイズで宣言することはできません。
        Dim bu(30) As XYZV
            ~~~~~~                   」

>    Private Structure AllMode
>         Dim bu(30) As XYZV
>         Dim nm As BData
>    End Structure

構造体のメンバーには静的配列が使えませんので以下のように変更します。

    Private Structure AllMode
         Dim bu() As XYZV
         Dim nm As BData
         Public Sub Initialize()
             bu = New XYZV(30){}  ' あるいは Redim bu(30)でもOK
         End Sub
    End Structure

この構造体を使うときにはまずInitializeメソッドを呼ぶ必要がありますので、
AB(72)を使う前に以下のような感じで初期化してください。

For i As Integer = 0 To AB.Length
    AB(i).Initialize()
Next

余談ですが、
> 次のような多段階配列を使いたいのですが、

今回ご提示のソースようなものは、一般的な呼称はなくて、
多段階配列(ジャグ配列ともいいます)とは言わないと思います。

多段階配列という言い方をする場合は、

Dim a(10)(20) As Integer

というような方法で宣言された配列を言います。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。