Visual Basic 中学校 掲示板 投稿内容
タグのない投稿を抽出 統計 RSS

Visual Basic 中学校 > 投稿一覧 >

構造体と List Of の取り扱い(データの更新)

タグの編集...

投稿者 N88-BASIC   (社会人)   投稿日時 2016/8/21 15:38:16
構造体のデータ(Structure)をListジェネリッククラスの要素として登録して、その値を変更する方法に関して情報を提供いただければ助かります。
対象システム:Windows 10 Home & Visual Studio Community 2015

目的:グラフィック表示用のデータを List Of (構造体) に格納

現状のコード(簡略)
'--- Declare
Public Structure ItemInfo
 Public Shape as String
 Public PosX as Integer
 Public PosY as Integer
End Structure

Dim ItemList As New List(Of ItemInfo)

'--- Procedure
'要素の登録
Dim OneItem as New ItemInfo

OneItem.Shape="Circle"
OneItem.PosX=10
OneItem.PosY=20

ItemList.Add(OneItem)

'要素の更新(エラー分)
ItemList(i).PosX=120   -> 「式が値であるため、代入式のターゲットにすることはできません。」

'要素の更新(現状)
Dim TargetItem As ItemInfo
TargetItem=ItemList(i)
TargetItem.PosX=200
ItemList(i)=TargetItem

?疑問点
1)現状の更新方法が適切かどうか
2)現状の3ステップの更新過程を簡略する方法

以上 よろしくお願いいたします。



投稿者 shu   (社会人)   投稿日時 2016/8/21 21:40:25
Structureは値型なので全体で1つの値となります。
なので値を更新するには現状通り代入しなおしが必要になります。
Classにするのがよいと思います。

投稿者 N88-BASIC   (社会人)   投稿日時 2016/8/22 08:22:57
shu さん、ご回答ありがとうございました。

「Structureは値型なので全体で1つの値」でエラーの意味が理解できました。

Classの適用の件、新しい書籍を入手したところですので勉強してみます。

今後ともよろしくお願いします。