A primeira declaração deste 'Sub New' deve ser uma chamada explícita a 'MyBase.New' ou 'MyClass.New' porque o '<constructorname>' 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 implícito de classe base é marcado com o ObsoleteAttribute atributo e a diretiva para o tratar como um erro.

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 construtor acessível na classe base que possa ser chamado sem argumentos, o Visual Basic não pode gerar uma chamada implícita. Neste caso, o construtor necessário está marcado com o ObsoleteAttribute atributo, pelo que o Visual Basic não pode chamá-lo.

Pode marcar qualquer elemento de programação como obsoleto ao aplicar ObsoleteAttribute a ele. Se fizer isto, pode definir a propriedade do IsError atributo como True ou False. Se definires para True, o compilador trata uma tentativa de usar o elemento como um erro. Se definires para False, ou deixares que o padrão seja False, o compilador emite um aviso se houver uma tentativa de usar o elemento.

ID de erro: BC30919

Para corrigir este erro

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