Извините, мой C # ржавый, так что я займусь этим в VB. Единственный способ понять, как это сделать - это использовать тип Object. Проверьте определение типа свойства и метод создания экземпляров ниже:
Private m_myVal As Object
Public Property myVal() As Object
Get
Return m_myVal
End Get
Set(ByVal value As Object)
m_myVal = value
End Set
End Property
Public Sub New(ByVal valType As String, ByVal val As Object)
If valType = "string" Then
myVal = CType(val, String)
ElseIf valType = "date" Then
myVal = CType(val, Date)
End If
End Sub
Затем, например, создайте новый экземпляр класса как:
Dim myDynamicClass as New Class1("date","10/21/2010")
Ваше свойство myval будет иметь сохраненное значение даты.