创建指定类型的通用列表

4
我想创建一个通用列表,但我希望在运行时指定类型。有没有办法可以做到这一点?也许可以使用反射?类似于下面的代码:
Public Shared Sub create(ByVal t As Type) 

  Dim myList As New Generic.List(Of t)

End Sub

Thanks in advance

James


那么在这种情况下,请尝试使用System.Reflection.Emit。 - Joshua
2个回答

2
如果调用者知道类型,您可以使方法本身成为通用的:
Public Shared Sub create(Of t)() 
    Dim myList As New Generic.List(Of t)
End Sub

如果调用者不知道类型,你就必须使用反射 - 请查看这个问题的被接受的答案 以获取更多信息。


1

我有一个函数可以完美地实现这个功能:

Public Shared Function CreateList(Of T)(ByVal ParamArray items() As T) As List(Of T)
    Return New List(Of T)(items)
End Function

例如,我可以通过以下方式创建一个整数列表:
dim L as list(of Integer) = CreateList(1,2,3,4,5)

或者创建一个文本框列表:

dim L as list(of TextBox) = CreateList(txtPhone1, txtPhone2, txtPhone3)

或者说一般来说,任何类型都可以。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接