gpt4 book ai didi

.net - 如何动态创建泛型类的对象?

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

我有一个带有此签名的子

Public Sub Save(ByVal obj As IPta)

现在我想要创建一个 obj 类型的 Generic.PtaDao(of T) 实例,它可以是从我的基类 Pta 继承的任何内容

我该怎么做?我已经找到了一个 c# 示例 Declare a generic type instance dynamically

但我不明白如何在我的案例中实现这一点。

蒂亚

-编辑-

澄清

让我们假设 obj 是一个 Address 类型的对象(Address 继承自 Pta,因此它实现了 IPta)

现在我想创建一个新的 PtaDao 对象,以 Address 对象为例

Dim AddressDao as New Generic.PtaDao(of Address)

但我想动态地执行此操作,因此如果 obj 是 UserGroup 类型,则它应该创建一个 PtaDao(用户组)

最佳答案

使其成为泛型方法,将类型参数的实例作为参数之一,并约束类型参数具有公共(public)无参数构造函数并实现 IPta:

Public Sub Save(Of T As { IPta, New })(ByVal obj As T)
Dim foo As New T
' Do more stuff here
End Sub

关于.net - 如何动态创建泛型类的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/386183/

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