【发布时间】:2018-04-03 03:45:46
【问题描述】:
我尝试将泛型类型传递给 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
错误信息:
类型 TypeContainer(Of TypeA) 无法转换为 TypeContainer(Of TypeBase)
哦,谢谢你的帮助,对不起我的英语和电话排版不好。
【问题讨论】:
-
根据您在
subTest中所做工作的详细信息,您或许可以使用协变接口。在联机 Visual Basic 帮助中查找Out关键字。另外,想想subTest是否需要带TypeContainer的参数,或者是否可以改为IEnumerable(Of TypeBase);如果是后者,IEnumerable(Of T)在T中已经是协变的。