gpt4 book ai didi

vb.net - 从另一个对象类型创建一个对象

转载 作者:行者123 更新时间:2023-12-02 01:57:36 24 4
gpt4 key购买 nike

在 Visual Basic.net 中,我可以创建一个对象,还是一个具有另一个对象类型的 T 列表。

这是一些代码:

Dim TestObjectType As Author
Dim TestObject As TestObjectType.GetType

我收到一个错误:

TestObjectType.GetType is not defined

编辑

我可以创建某种类型的 Type 对象,然后从该 Type 对象创建对象、列表或将对象转换为该类型吗?

最佳答案

Dim TestObject As TestObjectType.GetType 将在命名空间 TestObjectType 中查找名为 GetType 的类型。


要使用 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)

请注意,上面的两个片段都返回了一个对象;但是,您可以使用泛型来实现编译时安全:

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

关于vb.net - 从另一个对象类型创建一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19110559/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com