在Visual Basic.net中,我可以创建一个对象,还是具有其他对象类型的T列表。
这是一些代码:
Dim TestObjectType As Author
Dim TestObject As TestObjectType.GetType
我收到一个错误:
未定义TestObjectType.GetType
编辑
我可以创建某种类型的Type对象,然后从该Type对象创建对象,列表或将对象转换为此类型吗?
Dim TestObject As TestObjectType.GetType
会GetType
在命名空间中寻找一种命名类型TestObjectType
。
要使用创建类的实例System.Type
,可以使用Activator.CreateInstance
:
Dim TestObject = Activator.CreateInstance(TestObjectType.GetType())
要创建通用列表,可以使用Type.MakeGenericType
:
Dim listType = GetType(List(Of )).MakeGenericType(TestObjectType.GetType())
Dim list = Activator.CreateInstance(listType)
请注意,上面的两个代码段都返回Object
;但是,您可以使用泛型来实现编译时安全性:
Dim TestObject = CreateNew(TestObjectType)
Dim AuthorList = CreateNewList(TestObjectType)
...
Function CreateNew(Of T As New)(obj As T) As T
Return New T()
End Function
Function CreateNewList(Of T)(obj As T) As List(Of T)
Return New List(Of T)
End Function
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句