【问题标题】:how to set constructor with List(of Class) parameter如何使用 List(of Class) 参数设置构造函数
【发布时间】:2016-07-12 21:24:41
【问题描述】:

假设我正在为传递给 jquery 数据表的数据构建一个包装器,例如,我有三个类 Orders、OrderDetails 和 Customers。在数据表中,对象列表由变量名 aoData 表示,因此要构造它,我必须传递一个 List(Of someclass)。因为我不知道是哪一门课,直到我通过它,你是怎么做的?是否有一个将类名作为字符串的 GetType?我找不到。

 Public Class DataTablesWrapper
    Public Sub New(ByRef data As List(Of String))
        Me.aaData = data
    End Sub
    Public Sub New(ByRef data As List(Of some class depending on what data I want wrapped))
        Me.aoData = data
    End Sub
    Public Property aaData As List(Of String)
    Public Property aoData As List(Of some class depending on what data I want wrapped)
End Class

【问题讨论】:

  • 你可以使用generics
  • 你为什么使用ByRef
  • 爱匿名反对选民。对于相对较新的程序员来说,这并不是一件容易的事,感谢那些提供帮助的人
  • @Dominic.. 最初我打算操纵“数据”,我现在使用 ByVal,因为那不需要

标签: vb.net class


【解决方案1】:

我建议使用generics

在你的情况下,它看起来像这样:

Public Class DataTablesWrapper(Of T)
    Public Sub New(ByRef data As List(Of T))
        Me.aaData = data
    End Sub

    Public Property aaData As List(Of T)
End Class

然后创建您的实例将如下所示:

Sub Main()
    Dim stringList As New List(Of String)({"foo", "bar"})      
    Dim tablesWrapper As New DataTablesWrapper(Of String)(stringList)
End Sub

由于this reasons,您不想使用List(Of Object)

【讨论】:

  • 我试图以这种方式实现,但它不喜欢 List(Of T) 因为我没有将它添加到类定义中。谢谢
猜你喜欢
  • 2018-10-10
  • 1970-01-01
  • 2021-07-18
  • 1970-01-01
  • 2012-02-15
  • 2022-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多