VB.NET - вызов нескольких конструкторов

Я разработчик 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 ​​(... параметры ...) и вызвать его из двух конструкторов, но знает ли кто-нибудь обходной путь, чтобы избежать этой ошибки ?, почему компилятор делает не проверять возможность вызова базового конструктора перед перегруженным конструктором ?.

Кто-нибудь знает, как логически обосновать тот факт, что невозможно одновременно вызвать конструктор базового класса и другой конструктор уровня класса из одного конструктора уровня класса?

11
задан manuellt 29 December 2011 в 12:43
поделиться