2015-08-25 34 views
0

我试图创建一个函数来,我将通过我的对象的类型和功能将使用该类型来创建Object.GetType创建引用类型的列表

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

    Return 0 
End Function 

列表我遇到的问题是列表创建过程在其构造中不接受引用类型。

我试过将对象本身作为对象传递,然后使用.GetType()函数来创建列表,但它也不接受。

任何帮助,我会感激,在此先感谢。

+0

这就是泛型是。你可以将你的函数编写为:Function 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

@Enigmativity好点,虽然我不知道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