动态创建 class 个实例
Dynamic creation of class instances
有没有什么方法可以即时创建 class 实例并在以后引用它们?我有一个 class 具有各种方法和属性,旨在保存和计算产品数据。我希望该应用程序能够处理用户需要的尽可能多的单个产品。这段代码显然行不通,但它应该让您了解我在问什么:
For x = 1 To howEverMany
Dim product_ & x.ToString() As New myProductClass
Next x
我知道这可能不是最好的方法(我可能应该使用列表或数组来保存产品数据),但我很好奇从技术角度来看这是否可行。我正在使用 VB.Net,但欢迎使用任何 .Net 语言回答。谢谢
将它们存储在 List(Of T)
中。然后您可以对列表中的一个或多个对象进行 LINQ。
'class level
Private Products As New List(Of myProductClass)
'place where you load them
For x As Integer = 1 To howEverMany
Dim myc As New myProductClass
mpc.Id = x
'set other properties as needed
Products.Add(mpc)
Next
通过 ID 获取一个:
Dim mpc4 = (From p In Products Where p.Id = 4).FirstOrDefault
If Not mpc4 Is Nothing Then
'object exists
End If
您也可以在列表中进行其他类似查询。
有没有什么方法可以即时创建 class 实例并在以后引用它们?我有一个 class 具有各种方法和属性,旨在保存和计算产品数据。我希望该应用程序能够处理用户需要的尽可能多的单个产品。这段代码显然行不通,但它应该让您了解我在问什么:
For x = 1 To howEverMany
Dim product_ & x.ToString() As New myProductClass
Next x
我知道这可能不是最好的方法(我可能应该使用列表或数组来保存产品数据),但我很好奇从技术角度来看这是否可行。我正在使用 VB.Net,但欢迎使用任何 .Net 语言回答。谢谢
将它们存储在 List(Of T)
中。然后您可以对列表中的一个或多个对象进行 LINQ。
'class level
Private Products As New List(Of myProductClass)
'place where you load them
For x As Integer = 1 To howEverMany
Dim myc As New myProductClass
mpc.Id = x
'set other properties as needed
Products.Add(mpc)
Next
通过 ID 获取一个:
Dim mpc4 = (From p In Products Where p.Id = 4).FirstOrDefault
If Not mpc4 Is Nothing Then
'object exists
End If
您也可以在列表中进行其他类似查询。