A primeira instrução deste 'Sub New' deve ser uma chamada explícita para 'MyBase.New' ou 'MyClass.New' porque o '<construtorname>' na classe base '<baseclassname>' de '<derivedclassname>' está marcado como obsoleto.

Um construtor de classe não chama explicitamente um construtor de classe base e o construtor de classe base implícita é marcado com o ObsoleteAttribute atributo e a diretiva para tratá-lo como um aviso.

Quando um construtor de classe derivada não chama um construtor de classe base, o Visual Basic tenta gerar uma chamada implícita para um construtor de classe base sem parâmetros. Se não houver nenhum construtor acessível na classe base que possa ser chamado sem argumentos, o Visual Basic não poderá gerar uma chamada implícita. Nesse caso, o construtor necessário é marcado com o atributo ObsoleteAttribute, portanto, o Visual Basic não pode chamá-lo.

Você pode marcar qualquer elemento de programação como não sendo mais usado aplicando-se ObsoleteAttribute a ele. Se você fizer isso, poderá definir a propriedade do IsError atributo para True ou False. Se você defini-lo como True, o compilador tratará uma tentativa de usar o elemento como um erro. Se você defini-lo como False, ou deixá-lo padrão para False, o compilador emitirá um aviso se houver uma tentativa de usar o elemento.

Por padrão, essa mensagem é um aviso porque a propriedade IsError de ObsoleteAttribute é False. Para obter informações sobre como ocultar avisos ou tratar avisos como erros, consulte Configurar avisos no Visual Basic.

ID do erro: BC41003

Para corrigir este erro

  • Inclua uma chamada para MyBase.New() ou MyClass.New() como a primeira instrução da Sub New classe derivada.