タグ:

文字列で指定したプロパティーを設定・取得する

サンプルコード

Public Class Student
  Public Number As Integer
  Public Subjects() As String
  Private _name As String
  Public Property Name() As String
    Get
      Return Me._name
    End Get
    Set(ByVal value As String)
      Me._name = value
    End Set
  End Property
End Class


Sub Main()
  Dim Obj As Student = New Student With {.Name = "mike", .Number = 1}
  Dim ObjType As Type = GetType(Student)

  '値の取得
  Dim prInfo As PropertyInfo = ObjType.GetProperty("Name")
  Console.WriteLine(prInfo.GetValue(Obj, Nothing))

  '値の設定
  prInfo.SetValue(Obj, "Mike", Nothing)
End Sub

End Module

まず、Type クラスの GetProperty メゾットでPropertyInfoクラスを取得します。GetProperty メゾットで取得できるプロパティは"Property"ステートメントでちゃんと実装されている物のみです。

後は取得したPropertyInfoのGetValueメゾットで値の取得、SetValueメゾットで値を設定することができます。