Vb.net 类实例的动态创建

Vb.net 类实例的动态创建,vb.net,class,object,dynamic,instantiation,Vb.net,Class,Object,Dynamic,Instantiation,有没有办法动态创建类实例并在以后引用它们?我有一个拥有各种方法和属性的类,用于保存和计算产品数据。我希望该应用程序能够处理用户需要的任意多个产品。此代码显然不起作用,但它应该让您了解我的问题: For x = 1 To howEverMany Dim product_ & x.ToString() As New myProductClass Next x 我知道这可能不是最好的方法(我可能应该使用列表或数组来保存产品数据),但我很好奇从技术角度看这是否可行。我正在使用VB.

有没有办法动态创建类实例并在以后引用它们?我有一个拥有各种方法和属性的类,用于保存和计算产品数据。我希望该应用程序能够处理用户需要的任意多个产品。此代码显然不起作用,但它应该让您了解我的问题:

For x = 1 To howEverMany

    Dim product_ & x.ToString() As New myProductClass

Next x
我知道这可能不是最好的方法(我可能应该使用列表或数组来保存产品数据),但我很好奇从技术角度看这是否可行。我正在使用VB.Net,但欢迎使用任何.Net语言回答。谢谢。

将它们存储在
列表(共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

您也可以在列表中进行其他类似的查询。

当然,这是可能的。例如,如果您的类存储在另一个.NET程序集中,则可以反映该程序集并实例化该类,然后引用该类并在以后调用它。但是你需要给我们更多的信息。这些类是否在现有项目中?您可能希望使其更面向对象,并使用一些工厂方法根据参数创建正确类型的类。使用数组而不是
product\X
?谢谢。主要的是,所需的类实例的数量是可变的——用户可能需要任意数量的实例,我需要能够在这些不同的类实例中调用方法并设置属性。特别是用户从未知数量的Excel文件加载数据&我想知道在技术上是否可能(即使不理想)实例化一个表示每个工作簿中数据的类。这个类已经在我的项目中定义好了。谢谢你,但是正如我说的,这更多的是一个“我想知道是否…?”的问题,而不是一个实际的问题。我已经在使用数组:)