La prima istruzione di questo 'Sub New' deve essere una chiamata esplicita a 'MyBase.New' o 'MyClass.New' perché il nome< costruttore> nella classe base '<baseclassname>' di '<derivedclassname>' è contrassegnato come obsoleto.

Un costruttore di classe non chiama in modo esplicito un costruttore della classe base e il costruttore della classe base implicita è contrassegnato con l'attributo ObsoleteAttribute e la direttiva per considerarla come un avviso.

Quando un costruttore di classe derivata non chiama un costruttore di classe base, Visual Basic tenta di generare una chiamata implicita a un costruttore della classe di base senza parametri. Se nella classe di base non è presente alcun costruttore accessibile che può essere chiamato senza argomenti, Visual Basic non può generare una chiamata implicita. In questo caso, il costruttore obbligatorio è contrassegnato con l'attributo ObsoleteAttribute , pertanto Visual Basic non può chiamarlo.

È possibile contrassegnare qualsiasi elemento di programmazione come non più in uso applicandolo ObsoleteAttribute . In questo caso, è possibile impostare la proprietà dell'attributo IsError su True o False. Se si imposta su True, il compilatore considera un tentativo di utilizzare l'elemento come errore. Se lo si imposta su Falseo si lascia impostare l'impostazione predefinita su False, il compilatore genera un avviso se si tenta di usare l'elemento .

Per impostazione predefinita, questo messaggio è un avviso perché la IsError proprietà di ObsoleteAttribute è False. Per informazioni su come nascondere gli avvisi o considerare gli avvisi come errori, vedere Configurazione degli avvisi in Visual Basic.

ID errore: BC41003

Per correggere l'errore

  • Includere una chiamata a MyBase.New() o MyClass.New() come prima istruzione di Sub New nella classe derivata.