- PR -

【VB.NET】構造体の値の設定方法

1
投稿者投稿内容
tkinu
会議室デビュー日: 2004/07/16
投稿数: 16
投稿日時: 2006-02-02 22:16
いつもお世話になっています!

 Structure Mypoint
Dim a1 As int
Dim a2 As int
Dim a3 As int
 End Structure

というの構造体があって

それぞれの値を

 Dim xxx As Mypoint
 xxx.a=1
 xxx.b=2
 xxx.c=3
ではなく

 Dim xxx As Mypoint
 For Input=1 to 3
  xxx.a(Input)=Input
 Next
のような感じで設定することはできないでしょうか?
PoohKid
常連さん
会議室デビュー日: 2004/12/07
投稿数: 26
お住まい・勤務地: はてな市民
投稿日時: 2006-02-02 22:42
コード:
Structure Mypoint
    Dim a(3) As int
End Structure



↑では当然ダメだんですよね。。。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-02-03 01:08
引用:

tkinuさんの書き込み (2006-02-02 22:16) より:

のような感じで設定することはできないでしょうか?


リフレクションなどを使えばできるにはできますが、
そういう反復するものは普通コレクションでやります。
構造体で冗長なフィールドを持つ利点はないです。

引用:

Structure Mypoint
  Dim a1 As int
  Dim a2 As int
  Dim a3 As int
End Structure


Integer 型なのか独自の型なのか微妙ですね。(^-^;)

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-02-03 01:12
引用:

PoohKidさんの書き込み (2006-02-02 22:42) より:

コード:

Structure Mypoint
    Dim a(3) As int
End Structure


↑では当然ダメだんですよね。。。


そもそも、コンパイルが通りませんからダメですね。

構造体で初期化はできません。
初期化子を含めたりサイズを指定することはできません。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
tkinu
会議室デビュー日: 2004/07/16
投稿数: 16
投稿日時: 2006-02-03 07:57
じゃんぬねっとさん、PoohKidさん
ありがとうございます。

リフレクションってどのように設定すればいいのでしょうか?
難しくてよく分かりません。すいません・・・。

補足
 実際は反復ではありません。
 あと変数もInteger型です。

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-02-03 09:34
引用:

tkinuさんの書き込み (2006-02-03 07:57) より:

リフレクションってどのように設定すればいいのでしょうか?
難しくてよく分かりません。すいません・・・。


名前がわからない、順番しか情報がないのであるならば危険です。
というより、元々リフレクションは、お勧めできたものではありません。

引用:

実際は反復ではありません。
あと変数もInteger型です。


名前は反復でなくとも、上から順番に「何番目だからコレ」とアクセスしたいわけですよね?
残念ながら、構造体のメンバの順番は "通常は" 保証されないんですよ。

で、こういうインデクサの実装は普通はコレクションでやります。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
1

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