Die <Klassenname>-Klasse hat kein zugreifbares "Sub New" und kann nicht geerbt werden

Aktualisiert: November 2007

Class '<classname>' has no accessible 'Sub New' and cannot be inherited

Die Basisklasse einer Klasse wird mit einer Inherits-Anweisung angegeben, doch kann die Klasse auf keine Konstruktoren in der vorgesehenen Basisklasse zugreifen.

Dieser Fall kann eintreten, wenn die vorgesehene Basisklasse keine Konstruktoren besitzt oder wenn die Zugriffsebenen ihrer Konstruktoren den Zugriff aus einer anderen Klasse verhindern.

Wenn Sie eine Klasse vererben, sollte der Konstruktor den Konstruktor der Basisklasse mit MyBase aufrufen. Wenn Sie diesen Aufruf unterlassen oder wenn Sie nicht einmal einen expliziten Konstruktor schreiben, generiert Visual Basic einen impliziten Konstruktor, der MyBase.New() aufruft.

Fehler-ID: BC31399

So beheben Sie diesen Fehler

  1. Wenn Sie über die Quellcodeverwaltung der vorgesehenen Basisklasse verfügen, ändern Sie die Zugriffsebene von mindestens einem ihrer Konstruktoren, sodass eine andere Klasse auf den Konstruktor zugreifen kann.

  2. Wenn Sie keine Zugriffsebenen von Konstruktoren der vorgesehenen Basisklasse ändern können, vererben Sie eine andere Klasse, oder verzichten Sie auf Vererbung.

Siehe auch

Konzepte

Grundlagen der Vererbung

Zugriffsebenen in Visual Basic

Referenz

Inherits-Anweisung

MyBase

New (Visual Basic)