В коде ниже я получаю ошибку компиляции
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, но я нигде не могу найти его документированным. Если это необходимо, я хотел бы увидеть документацию.