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

動的なクラスの作り方

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

はじめまして。
以下のようなデータを持つクラスを作りたいのですが、
どうすればよいでしょうか?
当方初心者なのでよく分かりません。


Public Class PutDirClass
Public put_dir As String
End Class

Public Class DataSetClass
Public server_ip As String
Public put_dir_num As New Integer
Public put_dir As New PutDirClass
End Class

Public Class FileSetClass
Public test As String
Public data_num As New Integer ' 全体のデータ数
Public data_set As New DataSetClass
End Class


こんな感じでやってみたのですが、
これでは動的な配列にできてません。

これを配列にする方法等が分かりません。。。
誰かご教授をお願いいたします<(_ _)>


;----------------------------------------------------------
;全体のデータ数
;----------------------------------------------------------
data_num=2 ' 下記のデータの塊が何個あるか

;----------------------------------------------------------
;data 1
;----------------------------------------------------------
server_ip="129.129.12.70"
put_dir_num=2 'put_dirが何個あるか
put_dir1="c:\test1"
put_dir2="c:\test2"


;----------------------------------------------------------
;data 2
;----------------------------------------------------------
server_ip="129.129.12.70"
put_dir_num=3 'put_dirが何個あるか
put_dir1="c:\test1"
put_dir2="c:\test2"
put_dir3="c:\test3"
2006/07/11(Tue) 09:26:08 編集(投稿者)

■No16584に返信(ボンジュさんの記事)
> はじめまして。
> 以下のようなデータを持つクラスを作りたいのですが、
> どうすればよいでしょうか?

以下のようなであれば組めているかと。

> こんな感じでやってみたのですが、
> これでは動的な配列にできてません。

どこで配列にしようとしてるんですか?
そんな記述がまったくないので、どこでしたいのかあなたしかわからないですよね。

> これを配列にする方法等が分かりません。。。
> 誰かご教授をお願いいたします<(_ _)>

配列じゃなくてコレクションにしたいってことかな?

質問者であるあなたは、あなただからこそ、あなたの疑問がわかります。
この書き方では、それ以外の第三者からでは質問の意味がわからないでしょう。
想像はできます。が、我々はとなりにいる人じゃないですから、やはり伝わりにくいものです。
客先の人に理解してもらえるような書き方をされると回答はつきやすくなるかと。
はいこーんさん、レスどうもありがとうございます。

>どこで配列にしようとしてるんですか?
ですが、

Public Class PutDirClass
Public put_dir As String
End Class

Public Class DataSetClass
Public server_ip As String
Public put_dir_num As New Integer
Public put_dir As New PutDirClass ←ここをput_dir_num数分の配列にしたい
End Class

Public Class FileSetClass
Public data_num As New Integer ' 全体のデータ数
Public data_set As New DataSetClass ←ここをdata_num数分の配列にしたい
End Class

と考えています。
よろしくお願いいたします。

>配列じゃなくてコレクションにしたいってことかな?

すいません。。。
勉強不足でよく分かりません。

FileSetClassのdata_numの数分data_setを増やしたいと思っているのですが。。。
つまり、

Dim cls As New FileSetClass

cls.data_num = 3
cls.test = "test"

cls.data_set(0).server_ip = "111.111.111.111"
cls.data_set(0).put_dir_num = 1
cls.data_set(0).put_dir.put_dir(0) = "c:\1\"

cls.data_set(1).server_ip = "111.111.111.111"
cls.data_set(1).put_dir_num = 2
cls.data_set(1).put_dir.put_dir(0) = "c:\1\"
cls.data_set(1).put_dir.put_dir(1) = "c:\2\"

cls.data_set(2).server_ip = "111.111.111.111"
cls.data_set(2).put_dir_num = 3
cls.data_set(2).put_dir.put_dir(0) = "c:\1\"
cls.data_set(2).put_dir.put_dir(1) = "c:\2\"
cls.data_set(2).put_dir.put_dir(2) = "c:\3\"

みたいなことはどうやればできるのでしょうか?

※説明不足ですいませんでした。
っ Getter/Setterか、Indexerについて調べると幸せになれるかも。
既にはいこーんさんがヒントというか道筋というか回答を書いています。
配列やコレクションに関する知識がないというのなら、MSDNを参照してください。
ここ↓を見たほうが早いかも!

http://vsug.jp/tabid/63/forumid/72/postid/4672/view/topic/Default.aspx

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