【发布时间】:2011-04-27 17:05:39
【问题描述】:
考虑一个包含Show() 的影子实现的MyForm 类。它还包含一个CreateForm() 方法,该方法接受表单的一个实例并调用阴影子:
Public Class MyForm
Inherits Form
Public Shadows Sub Show()
MessageBox.Show("Shadowed implementation called!")
End Sub
End Class
...
Public Sub CreateForm(ByVal childForm As MyForm)
childForm.MdiParent = Me
childForm.Show()
childForm.Focus()
End Sub
当使用CreateForm(New MyForm()) 调用时,Show() 的阴影实现被正确调用。现在考虑以下通用实现:
Public Sub CreateForm(Of T As Form)(ByVal childForm As T)
childForm.MdiParent = Me
childForm.Show()
childForm.Focus()
End Sub
用CreateForm(Of MyForm)(New MyForm()) 调用,这个强类型泛型方法从不调用阴影方法。
这是一个错误,还是我遗漏了什么?
【问题讨论】:
标签: vb.net generics strong-typing shadowing