Рассмотрим класс MyForm
, который содержит теневую реализацию Show()
.Он также содержит метод 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())
этот обобщенный метод со строгой типизацией никогда не вызывает затененный метод.
Это ошибка или я что-то упустил?