在运行时定义/声明对象 VB.Net
Define / Declare an Object at Runtime VB.Net
我使用对象来存储信息。问题是,在编译我的应用程序时,我不知道必须存储哪些信息。例如,用户创建信息颜色并在其中存储红色,我想创建一个对象:
Public Class Information_Object
Public Property general As Integer
Public Property date As DateTime
Public Property color As String = "red"
End Class
有没有办法在运行时定义对象?
您不能在 运行 时声明 object/class,但您可以创建一个通用对象并在 运行 时重新调整它的用途。例如,您可能会声明一个包含各种变量的对象,其中包括描述应如何使用该对象的变量。
这预先假定您可以定义对象在加载值后如何被消耗。
所以,这样的事情可能会有所帮助:
Public ENUM Consume_As
Colour
Number
Datetime
... and so on. Anything you like
End Enum
Public Class My_Dynamic_Object
'
'... You will have to create your GET/SET lines
'
'This is what tells your sstem how to consume data held in this class
Public _comsume_as AS Consume_As
'Here is where you can store your data
'This can be anything you like
'a colour, dataset, another custom class ...
Public Class_Variable_1 AS Object
End Class
现在您可以创建一个 My_Dynamic_Object 的字典,其中包含您在 运行 时创建的任意数量的条目。
每个 My_Dynamic_Object 都可以包含对 [ENUM Consume_AS] 的引用,以确定应如何处理 My_Dymanic_Object,以及 Class_Variable_1.
中您喜欢的任何内容
您将需要编写必要的代码来移交 My_Dynamic_Object。Class_Variable_1 以进行必要的处理。
笨重??也许吧,但它可能会满足您的需求。
我会用字典。
Dim dObjects As New Dictionary(Of String, Object)
dObjects.Add("First Object", New TextBox With {.Text = "Textbox"})
dObjects.Add("Second Object", 34533)
dObjects.Add("Color", New Color = Color.Red)
dObjects.Add("Date", Now())
dObjects.Add("Whatever string...", "whatever object you want...")
For Each k As String In dObjects.Keys
Debug.Print(dObjects(k).GetType.ToString)
Next
我使用对象来存储信息。问题是,在编译我的应用程序时,我不知道必须存储哪些信息。例如,用户创建信息颜色并在其中存储红色,我想创建一个对象:
Public Class Information_Object
Public Property general As Integer
Public Property date As DateTime
Public Property color As String = "red"
End Class
有没有办法在运行时定义对象?
您不能在 运行 时声明 object/class,但您可以创建一个通用对象并在 运行 时重新调整它的用途。例如,您可能会声明一个包含各种变量的对象,其中包括描述应如何使用该对象的变量。
这预先假定您可以定义对象在加载值后如何被消耗。
所以,这样的事情可能会有所帮助:
Public ENUM Consume_As
Colour
Number
Datetime
... and so on. Anything you like
End Enum
Public Class My_Dynamic_Object
'
'... You will have to create your GET/SET lines
'
'This is what tells your sstem how to consume data held in this class
Public _comsume_as AS Consume_As
'Here is where you can store your data
'This can be anything you like
'a colour, dataset, another custom class ...
Public Class_Variable_1 AS Object
End Class
现在您可以创建一个 My_Dynamic_Object 的字典,其中包含您在 运行 时创建的任意数量的条目。 每个 My_Dynamic_Object 都可以包含对 [ENUM Consume_AS] 的引用,以确定应如何处理 My_Dymanic_Object,以及 Class_Variable_1.
中您喜欢的任何内容您将需要编写必要的代码来移交 My_Dynamic_Object。Class_Variable_1 以进行必要的处理。
笨重??也许吧,但它可能会满足您的需求。
我会用字典。
Dim dObjects As New Dictionary(Of String, Object)
dObjects.Add("First Object", New TextBox With {.Text = "Textbox"})
dObjects.Add("Second Object", 34533)
dObjects.Add("Color", New Color = Color.Red)
dObjects.Add("Date", Now())
dObjects.Add("Whatever string...", "whatever object you want...")
For Each k As String In dObjects.Keys
Debug.Print(dObjects(k).GetType.ToString)
Next