- PR -

構造体配列の動的について

1
投稿者投稿内容
みのる
大ベテラン
会議室デビュー日: 2003/07/03
投稿数: 100
投稿日時: 2004-10-03 14:55
こんにちは。

構造体配列を動的に作成したいのですが、できなくて困っています。
(VB.NET)

ソースは以下の通りです。

Private Structure m_strMeisai01
Dim m_Bumon As String
Dim m_Bumonname As String
Dim m_Kobetu As String
Dim m_Kaimirikei As Double
End Structure

Dim dtMeisai1() As m_strMeisai01

With dtMeisai1(intMeisaiLen)
.m_Bumon = m_dtMeisai1.Rows(intCntdt1)(0)
.m_Bumonname = m_dtMeisai1.Rows(intCntdt1)(1)
.m_Kobetu = m_dtMeisai1.Rows(intCntdt1)(2)
.m_Kaimirikei = m_dtMeisai1.Rows(intCntdt1)(3)
End With

と宣言すると、"Nothing"で値をセットすることができません。

Dim dtMeisai1(10) As m_strMeisai01

と宣言すると、値をセットすることができます。

そもそも構造体配列を動的に作成はできないのでしょうか?
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2004-10-03 18:34
Dim dtMeisai1() As m_strMeisai01
では実体を宣言したことにはならないので。。
ReDimを使用するか、ArrayList使うのが簡単でいいと思います。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-10-03 19:57
 構造体でするより、クラスにしてDataRowを引数にするコンストラクタを作る方がいいと思います。

 また、配列は再割り当てをいろいろ考える必要があるので、その辺を自動的にやってくれるArrayListを使うと便利です。もし配列が必要なら、ArrayListに配列として取り出すメソッドもあります。
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2004-10-03 23:16
ちなみにArrayList等(ぶっちゃけ配列以外)を使う場合、
先にインスタンスを格納しといていじることは基本的には出来ないので注意。
※あ、構造体の場合の話ですよ。クラスにするならOKですが。
1

スキルアップ/キャリアアップ(JOB@IT)