Freigeben über


Die Klasse '<Klassenname1>' muss eine "Sub New" deklarieren, da ihre Basisklasse '<Klassenname2>' mehrere zugreifbare "Sub New"s hat, die ohne Argumente aufgerufen werden können

Aktualisiert: November 2007

Class '<classname1>' must declare a 'Sub New' because its base class '<classname2>' has more than one accessible 'Sub New' that can be called with no arguments

Eine abgeleitete Klasse deklariert keinen Konstruktor, und Visual Basic kann keinen Konstruktor generieren, da der aufzurufende Basisklassenkonstruktor nicht bestimmt werden kann.

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, oder wenn mehrere solcher Konstruktoren vorhanden sind, kann Visual Basic keinen impliziten Konstruktor generieren.

Diese Situation kann z. B. auftreten, wenn ein Basisklassenkonstruktor ein einzelnes Optional-Argument besitzt und ein anderes ein einzelnes ParamArray-Argument. Beide können ohne Argumente aufgerufen werden.

Fehler-ID: BC32036

So beheben Sie diesen Fehler

  1. Deklarieren und implementieren Sie in der abgeleiteten Klasse mindestens einen Sub New-Konstruktor.

  2. Fügen Sie als erste Zeile jedes Sub New-Konstruktors einen Aufruf des Basisklassenkonstruktors MyBase.New() hinzu.

Siehe auch

Konzepte

Objektlebensdauer: Erstellen und Zerstören von Objekten

Optionale Parameter

Parameterarrays

Referenz

Verwenden von Konstruktoren und Destruktoren

Optional (Visual Basic)

ParamArray