Freigeben über


Die <Klassenname>-Klasse sollte "Sub New" deklarieren, da '<Konstruktorname>' in der <Basisklassenname>-Basisklasse als veraltet markiert ist

Aktualisiert: November 2007

Class '<classname>' should declare a 'Sub New' because the '<constructorname>' in its base class '<baseclassname>' is marked obsolete

Eine Klassendeklaration enthält keinen Konstruktor, und der Basisklassenkonstruktor ist mit dem ObsoleteAttribute-Attribut sowie der Direktive markiert, dies als Warnung zu behandeln.

Wenn eine abgeleitete Klasse keinen Konstruktor deklariert, versucht Visual Basic, einen impliziten parameterlosen Konstruktor zu generieren, der MyBase.New() aufruft. Wenn in der Basisklasse kein zugreifbarer Konstruktor vorhanden ist, der ohne Argumente aufgerufen werden kann, kann Visual Basic keinen impliziten Konstruktor generieren. In diesem Fall wird der erforderliche Konstruktor mit dem ObsoleteAttribute-Attribut markiert, sodass Visual Basic ihn nicht aufrufen kann.

Sie können ein beliebiges Programmierelement als nicht mehr in Gebrauch befindlich markieren, indem Sie ObsoleteAttribute auf das Programmierelement anwenden. In diesem Fall können Sie die IsError-Eigenschaft des Attributs auf True oder auf False festlegen. Wenn Sie True festlegen, behandelt der Compiler einen Versuch, das Element zu verwenden, als Fehler. Wenn Sie False festlegen oder als Standardwert False vorgeben, gibt der Compiler eine Warnung aus, sobald versucht wird, das Element zu verwenden.

Diese Meldung ist standardmäßig eine Warnung, da die IsError-Eigenschaft von ObsoleteAttributeFalse ist. Informationen über das Ausblenden von Warnungen bzw. über die Behandlung von Warnungen als Fehler finden Sie unter Konfigurieren von Warnungen in Visual Basic.

Fehler-ID: BC41001

So beheben Sie diesen Fehler

  • Verwenden Sie Sub New, um einen Konstruktor in der abgeleiteten Klasse zu deklarieren.

Siehe auch

Konzepte

In Visual Basic verwendete Attribute

Anwendung von Attributen