コードを書く


Public Class Class1
''' <summary>
''' Class1 のインスタンスを作成します。
''' </summary>
''' <param name="values">匿名型の初期化パラメータ<br />
''' UserID:ユーザID<br />
''' Name:名称<br />
''' Age:年齢
''' </param>
''' <returns></returns>
Public Shared Function CreateInsetance(ByVal values As Object) As Class1
If values Is Nothing Then Return Nothing

Dim properties = TypeDescriptor.GetProperties(values)
Dim insetance = New Class1()
For Each p As PropertyDescriptor In properties
Select Case p.Name.ToLower()
Case "userid" : insetance._userID = TryCast(p.GetValue(values), String)
Case "age" : insetance._age = Convert.ToInt32(p.GetValue(values))
Case "name" : insetance._name = TryCast(p.GetValue(values), String)
Case Else
End Select
Next
Return insetance
End Function

Private _userID As String
Public ReadOnly Property UserID() As String
Get
Return _userID
End Get
End Property

Private _age As Integer
Public ReadOnly Property Age() As Integer
Get
Return _age
End Get
End Property

Private _name As String
Public ReadOnly Property Name() As String
Get
Return _name
End Get
End Property
End Class