Я разработчик C # и не имею достаточного опыта работы с 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)
If i инвертировать порядок, в котором я получаю ошибку:
MyBase.New(String.Empty)
Я могу создать метод SetValues (... параметры ...) и вызвать его из двух конструкторов, но знает ли кто-нибудь обходной путь, чтобы избежать этой ошибки ?, почему компилятор делает не проверять возможность вызова базового конструктора перед перегруженным конструктором ?.
Кто-нибудь знает, как логически обосновать тот факт, что невозможно одновременно вызвать конструктор базового класса и другой конструктор уровня класса из одного конструктора уровня класса?