Я разработчик на AC # и не обладаю достаточным опытом в VB.NET.
сценарий:
Namespace Presenters
Public Class BaseFooPresenter
' assuming the public default parameterless constructor
Public Sub New(ByVal strvar As String)
' TODO with strvar variabile
End Sub
End Class
Public Class FooPresenter
Inherits BaseFooPresenter
Public Sub New(ByVal boolvar As Boolean)
' TODO with boolvar variabile
End Sub
Public Sub New(ByVal boolvar As Boolean, _
ByVal objvar As Object)
MyBase.New(String.Empty)
Me.New(true)
' TODO with objvar variabile
End Sub
End Class
End Namespace
С этим кодом на втором FooPresenterконструктор я получаю сообщение об ошибке
"Вызов конструктора действителен только при первом утверждении в конструкторе экземпляра."
at:
Me.New(true)
Если я инвертирую порядок, то яполучить ошибку по адресу:
MyBase.New(String.Empty)
Я могу создать метод SetValues (... параметры ...) и вызвать его из двух конструкторов, но кто-то знает обходной путь, чтобы избежать этой ошибки? Почемукомпилятор не проверяет возможность вызова базового конструктора перед перегруженным конструктором?.
Кто-нибудь знает, как логически обосновать тот факт, что нельзя вызвать конструктор базового класса и другой конструктор уровня класса из одного класса?конструктор уровней одновременно?