- PR -

構造体のメンバに構造体の続編

1
投稿者投稿内容
mura
会議室デビュー日: 2003/08/13
投稿数: 9
投稿日時: 2006-06-22 19:11
以下の構造体の宣言ではgrps0,grps1,grps2と増えていった分だけ
コードが増えてしまいますが、何か良い方法はないでしょうか?

Public Structure GRP_aaa
Public A As Integer
Public B As Integer
End Structure

Public Structure GRPS_aaa
Private grps0 As GRP_aaa
Private grps1 As GRP_aaa
Private grps2 As GRP_aaa
:
:
:

Public Default Property Item(ByVal index As Integer) As GRP_aaa
Get
Select Case index
Case 0
Return grps0
Case 1
Return grps1
Case 2
Return grps2
:
:
:

Case Else
Throw New ArgumentOutOfRangeException("index")
End Select
End Get
Set
Select Case index
Case 0
grps0 = Value
Case 1
grps1 = Value
Case 2
grps2 = Value
:
:
:

Case Else
Throw New ArgumentOutOfRangeException("index")
End Select
End Set
End Property
End Structure

Public Structure TBL_aaa
Public grps As GRPS_aaa
End Structure
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-06-22 19:53
引用:

muraさんの書き込み (2006-06-22 19:11) より:

以下の構造体の宣言ではgrps0,grps1,grps2と増えていった分だけ
コードが増えてしまいますが、何か良い方法はないでしょうか?


「配列」 や 「コレクション」 あたりを調べてみてください。
この場合、構造体よりデータ クラスを選択すべきかもしれません。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
mura
会議室デビュー日: 2003/08/13
投稿数: 9
投稿日時: 2006-06-23 08:40
ありがとうございます。
「配列」「コレクション」については調べてみます。

「アンマネージドDLLとの相互運用に使用する構造体のメンバに構造体の固定長配列をどうやって定義するのか」
ということでこのような構造体宣言になったのです・・・

勉強不足ですいません。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-06-23 09:14
引用:

muraさんの書き込み (2006-06-23 08:40) より:

「アンマネージドDLLとの相互運用に使用する構造体のメンバに構造体の固定長配列をどうやって定義するのか」
ということでこのような構造体宣言になったのです・・・


それを早く言ってくださらないと... (;´・ω・`)σ

引用:

以下の構造体の宣言ではgrps0,grps1,grps2と増えていった分だけ
コードが増えてしまいますが、何か良い方法はないでしょうか?


.NET Framework 1.1 であれば、方法はありません。
独自の型は、メンバを並べる方法でしかマーシャリングできません。

# 配列とコレクションは調べなくても良いです...

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
mura
会議室デビュー日: 2003/08/13
投稿数: 9
投稿日時: 2006-06-23 12:13
引用:
.NET Framework 1.1 であれば、方法はありません。
独自の型は、メンバを並べる方法でしかマーシャリングできません。



そうなんですか・・・

構造体の構造体にならないよう考え直すことにします。
ありがとうございました。
1

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