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())
、この強く型付けされたジェネリックメソッドはシャドウメソッドを呼び出すことはありません。
これはバグですか、それとも何かが足りませんか?