代码之家  ›  专栏  ›  技术社区  ›  Absinthe

类实例的动态创建

  •  0
  • Absinthe  · 技术社区  · 9 年前

    是否有任何方法可以动态创建类实例并在以后引用它们?我有一个包含各种方法和属性的类;计算产品数据。我希望该应用程序能够处理用户所需的任意数量的单个产品。这段代码显然不起作用,但它应该让你知道我在问什么:

    For x = 1 To howEverMany
    
        Dim product_ & x.ToString() As New myProductClass
    
    Next x
    

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

    1 回复  |  直到 9 年前
        1
  •  0
  •   OneFineDay    9 年前

    将它们存储在 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
    

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