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

ArrayList と 構造体 の使い方 について

環境/言語:[Win2000 VB.NET 2002 .NET Framework(1.0)]
分類:[.NET]

fnです。こんにちは。

ArrayList と 構造体 をあわせて使用したいのですが、エラーがでてうまくいきません。どこで間違っているのかよろしくお願いします。

■やりたいこと
Dim ALL As New ArrayList() を使用する際に、
構造体 stAAA の中に stBBB を配列(ArrayList)(※可変)として扱いたい。

    Public Structure stAAA
        Public A0 As String
        Public Bary As ArrayList
    End Structure

    Public Structure stBBB
        Public B0 As String
        Public B1 As String
        Public B2 As String
        Public B3 As String
    End Structure

    Sub test(ByVal Aloop As Integer, ByVal Bloop As Integer)
        Dim ALL As New ArrayList()
        Dim tmpAAA As stAAA
        Dim tmpBBB As stBBB
        Dim i, j As Integer
        For i = 1 To Aloop
            tmpAAA.A0 = "AAAA"      '実際は色々値が変わります。
            For j = 1 To Bloop      '
                tmpBBB.B0 = "0000"  '実際は色々値が変わります。
                tmpBBB.B1 = "1111"  '実際は色々値が変わります。
                tmpBBB.B2 = "2222"  '実際は色々値が変わります。
                tmpBBB.B3 = "3333"  '実際は色々値が変わります。
                tmpAAA.Bary.Add(tmpBBB) '※
            Next
            ALL.Add(tmpAAA)
        Next
    End Sub

実行時には、※のところで
「オブジェクト参照がオブジェクト インスタンスに設定されていません。」
とエラーが表示されます。

以上、よろしくお願いします。
fnさん、こんにちは。

>Dim tmpAAA As stAAA
>Dim tmpBBB As stBBB
の宣言部、Newが抜けていませんか、、、?

見当違いなアドバイスでしたらすいません、、。
■No3529に返信(なおやさんの記事)
> >Dim tmpAAA As stAAA
> >Dim tmpBBB As stBBB
> の宣言部、Newが抜けていませんか、、、?

New をつけても同じところでエラーになってしまいます。
tmpAAA.Bary = New ArrayList()
してないので、tmpAAA.BaryがNothingなのでは?
■No3532に返信(NowhereManさんの記事)
> tmpAAA.Bary = New ArrayList()
> してないので、tmpAAA.BaryがNothingなのでは?
>

fn@質問者です。
ご指摘のとおり、tmpAAA.Bary = New ArrayList()を追加したら、OKでした。
(tmpAAA.Baryをウォッチすればすぐわかることでしたね。)
まだまだ、修行がたらないようです。

ご回答ありがとうございました。
解決済み!

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