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

VB.Netでクラスの中に配列のクラスを作成したい

分類:[.NET]

お世話になります、VB.net2003/Windows2000Serverで開発を行っています。
表題のことを実現したいのですが、上手くかけずに困っています。
実現したいこととしては、、、
・クラスの中に、一般的なプロパティと、別に設定してあるクラスの配列を持たせたい(WebServiceで一度に複数テーブルのデータを渡したいため)

Public Class A
Private _AA As String
Public Property AA() As String
Set(ByVal Value As String)
_AA = Value
End Set
Get
Return _AA
End Get
End Property
Private _AB As String
Public Property AB() As String
Set(ByVal Value As String)
_AB = Value
End Set
Get
Return _AB
End Get
End Property
End Class
Public Class B
Private _BA As String
Public Property BA() As String
Set(ByVal Value As String)
_BA = Value
End Set
Get
Return _BA
End Get
End Property
'上に定義したAをここでも呼びたい
'更に、これを配列にしたいのですが、方法がわかりません
Private _BB As A
Public Property BB() As A
Set(ByVal Value As A)
_BB = Value
End Set
Get
Return _BB
End Get
End Property
End Class

最終的に
B.BA='aaa'
B.BB(0).AA='asas'
B.BB(0).AB='popo'
といったデータのセットをして返すことができればいいのですが、、、
お分かりの方がおられたらどうかご教授ください、よろしくお願いします。
こんにちは、ckさん。ピラルクです。

> '上に定義したAをここでも呼びたい

呼べているのでは?
呼べないとしたら、
Private _BB As A
が As New A() ではないからインスタンスが入っていないとか?

  mB.BB = New A()
  mB.BB.AA = "I'm A"
  Console.WriteLine(mB.BB.AA)

> '更に、これを配列にしたいのですが、方法がわかりません

Public Class B
  Private _ArrayBB As A()

  Public Property ArrayBB() As A()
    Set(ByVal Value As A())
      _ArrayBB = Value
    End Set
    Get
      Return _ArrayBB
    End Get
  End Property
End Class

これもA配列のインスタンスと配列個々の要素は New が必要。

  Dim mArrayB(100) As A

  mB.ArrayBB = mArrayB
  mB.ArrayBB(16) = New A()
  mB.ArrayBB(16).AA = "I'm 16"
  mB.ArrayBB(100) = mB.BB '上の続き

  Console.WriteLine(mB.BB.AA)
  Console.WriteLine(mB.ArrayBB(16).AA)
  Console.WriteLine(mB.ArrayBB(100).AA)
お世話になります、ピラルクさん。

Newしていないとかそういう根本的なことがいろいろと重なってうまく動かなかったようです。本当に勉強不足で恥ずかしいです。^^;

Public Class A
Public ClassBB() as B
 ’この後にクラスへの値の戻しはここでは記述がいらないようです
~
~
End Class
といった記述でクラスの中のクラス配列は実現できました。
その後に中のクラス配列一つ一つの初期化は必要なのですが、基本的なところがわかっていなかったので混乱していたようです。
アドバイスいただいて本当にありがとうございます、お返事が遅れてすみませんでした。
解決済み!

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