将子泛型类型传递给函数需要基类泛型不工作

时间:2018-04-03 03:45:47

标签: vb.net class generics

我尝试将泛型类型传递给sub,但得到错误。

我用基类约束然后传递子类而不工作,我被误解了吗?

主:

Private Sub GenericTypeTest_Load
    Dim tA As New TypeA
    Dim tCon As New TypeContainer(of TypeA)
    subTest(tCon)    'error here
End Sub

类别:

Public Class TypeBase
End Class

Public Class TypeA : Inherits TypeBase
End Class

Public Class TypeContainer(of T As {TypeBase, New})
End Class

错误讯息:

  

Type TypeContainer(Of TypeA)无法转换为TypeContainer(Of TypeBase)

哦,谢谢你的帮助,抱歉我的英文和电话排版不好。

1 个答案:

答案 0 :(得分:0)

TypeA继承TypeBase这一事实并不意味着TypeContainer(Of TypeA)继承TypeContainer(Of TypeBase)。您只能将参数传递给subTest,即继承或实现参数的类型。

显示subTest的声明,也许我可以更具体。