2015-08-25 2 views
0

Я пытаюсь создать функцию, в которой я буду передать тип моего объекта и функция будет использовать этот тип, чтобы создать список этого Object.GetTypeСоздание списка указываемого Типа

Public Function DoSomething(ByRef ObjectType As Type) 
    Dim List As List(Of ObjectType) 

    Return 0 
End Function 

Проблема, с которой я сталкиваюсь, заключается в том, что процесс создания списка не принимает ссылочные типы в его построении.

Я попытался передать объект как объект, а затем использовать функцию .GetType() для создания списка, но он также не принимает этого.

Любая помощь была бы оценена мной, спасибо заранее.

+0

Это то, что Дженерики для. Вы можете запрограммировать свою функцию как «Функция DoSomething (Of ​​T)() As List (Of T)» «Возвращать новый список (Of T)» «End Function» и называть его следующим образом: «Dim myIntList As List (Of Integer) = DoSomething (Of ​​Integer)() ' – Blackwood

+0

@Blackwood - Неясно, имеет ли OP тип' T' во время компиляции или он имеет только «ObjectType As Type» во время выполнения. – Enigmativity

+0

@ Энигматичность Хорошая точка, хотя я не знаю, зачем OP понадобится «ObjectType As T» во время выполнения. – Blackwood

ответ

0

Попробуйте это:

Public Function DoSomething(ByRef ObjectType As Type) As IList 
    Return CType(Activator.CreateInstance(GetType(List(Of)).MakeGenericType(ObjectType)), IList) 
End Function 
Смежные вопросы