関係ないけど、とある処理をするために大量のパラメータセットが必要で、やっかいなことに処理をクラスとして独立できないからしょうがない、構造体を定義してパラメータに使うかと思ったんですが、え〜、構造体なんて使うの何年ぶりだそもそもVB.NETで構造体なんか使ったことないどころか殆ど見たこともないんですがどうやって書くんだというw
で、調べたらstructureが構造体、らしいんですがなぜか構造体の中の変数にスコープが必須とかよくわからない制限があって、サンプルを見たら‥‥、
Private Structure Habitant Public Name As String Public Room As Integer Private InnerPerson As String Public Sub setProfile(ByVal aName As String, ByVal aRoom As Integer, ByVal aInnerPerson As String) Name = aName Room = aRoom InnerPerson = aInnerPerson End Sub End Structure Public Class Apartment Private FHabitants As IList(Of Habitant) Private Sub new() FHabitants = New List(Of Habitant) Dim oChar1 as Habitant oChar1.setProfile("ゆのさま", 201, "阿澄") FHabitants(oChar1) Dim oChar2 as Habitant oChar2.setProfile("みやこ", 202, "水橋") FHabitants(oChar2) Dim oChar3 as Habitant oChar3.setProfile("ヒロ", 101, "マミ") FHabitants(oChar3) End Sub Public Readonly Property Habitants As IList(Of Habitant) Get Return FHabitants End Get End Property End Class
どういうことだよ、コイツ、クラスじゃねーか!
(一応、クラス型の変数がインスタンスに対するポインタなのに対して、構造体型の変数はプリミティブ型と同じ扱いなので引数に渡したときは値がコピーされる、ってのはありますが、String型がプリミティブでなくオブジェクトな時点で既にそんな差違を気にする人はいません)