以下のコードでは、コンパイル エラーが発生します。
Error Too many arguments to 'Public Sub New()'
でDim TestChild As ChildClass = New ChildClass("c")
。TestChild.Method1()
どちらも継承元の基本クラスにありますが、受け取りません。
Public Class BaseClass
Public ReadOnly Text As String
Public Sub New(ByVal SetText As String)
Text = SetText
End Sub
Public Sub New()
Text = ""
End Sub
End Class
Public Class ChildClass
Inherits BaseClass
End Class
Public Class TestClass
Sub Test()
Dim TestChild As ChildClass = New ChildClass("c")
TestChild.Method1()
End Sub
End Class
子クラスを次のように変更できます。
Public Class ChildClass
Inherits BaseClass
Public Sub New (ByVal SetText As String)
MyBase.New(SetText)
End Class
End Class
以下で提案されているように、方法 1 やその他の継承されたメソッドではそれを行う必要はなく、可能な限りクリーンなコードを探しています。これは、パラメーター化された New ステートメントを継承するシステムの制限である可能性がありますが、どこにも文書化されていません。それが必要な場合は、ドキュメントを参照したいと思います。