.net Framework 4 からなのか、ExpandoObject という、動的にメンバーが追加できる型ができたようです。
Dim person As Object = New Dynamic.ExpandoObject person.ID = 1 person.Name = "Name" Console.WriteLine(person.ID) Console.WriteLine(person.Name) Console.WriteLine("-----------") Console.WriteLine(TypeName(person)) Console.WriteLine(TypeName(person.ID)) Console.WriteLine(TypeName(person.Name))
結果
1 Name ----------- ExpandoObject Integer String 続行するには何かキーを押してください . . .
存在しないメンバーに代入すれば、宣言なしでメンバーができるってのは楽ですね。
ただし、これを扱うには、Option Strict は Off にしておく必要があるのと、型推論は効かさないようにする必要があります。
(Dim Dim person = New Dynamic.ExpandoObject、ではなく、Dim person As Object = New Dynamic.ExpandoObject、のように「As Object」を省略しないようにします)