2010-05-26 5 views
2

Я хочу создать общий список, но я хочу указать тип во время выполнения - есть ли способ, которым я могу это сделать? используя отражение возможно?Создание общего списка указанного типа

Что-то вроде этого ...

Public Shared Sub create(ByVal t As Type) 

    Dim myList As New Generic.List(Of t) 

End Sub 

Заранее спасибо

Джеймс

+0

Ну в этом случае попробуйте System.Reflection.Emit. – Joshua

ответ

1

Если звонящий знать тип, вы можете сделать метод сам по себе родовое:

Public Shared Sub create(Of t)() 
    Dim myList As New Generic.List(Of t) 
End Sub 

Если вызывающие абоненты не знают тип, вам придется прибегнуть к размышлениям - see the accepted answer to this question для получения дополнительной информации.

0

У меня есть функция, чтобы сделать именно это:

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) 

В целом, любого типа.

Смежные вопросы