Freigeben über


BC40029: „<Klassenname>“ ist nicht CLS-kompatibel, da die von ihr implementierte Schnittstelle „<Schnittstellenname>“ nicht CLS-kompatibel ist.

Eine Klasse oder Schnittstelle wird als <CLSCompliant(True)> gekennzeichnet, wenn sie von einem Typ abgeleitet ist oder einen Typ implementiert, der als <CLSCompliant(False)> oder gar nicht gekennzeichnet ist.

Damit eine Klasse oder Schnittstelle mit den sprachunabhängigen Komponenten (Language Independence and Language Independent Components, CLS) kompatibel ist, muss die gesamte Vererbungshierarchie konform sein. Das bedeutet, dass jeder Typ, von dem sie direkt oder indirekt erbt, kompatibel sein muss. Analog dazu muss eine Klasse, wenn sie eine oder mehrere Schnittstellen implementiert, deren Kompatibilität durch alle Vererbungshierarchien sicherstellen.

Wenn Sie das CLSCompliantAttribute auf ein Programmierelement anwenden, legen Sie den isCompliant -Parameter des Attributs auf True oder False fest, um die Kompatibilität bzw. Nichtkompatibilität anzugeben. Es gibt keinen Standardwert für diesen Parameter, und Sie müssen einen Wert angeben.

Wenn Sie das CLSCompliantAttribute nicht auf ein Element anwenden, wird dieses als nicht kompatibel betrachtet.

Standardmäßig ist diese Meldung eine Warnung. Informationen zum Ausblenden von Warnungen oder zum Behandeln von Warnungen als Fehler finden Sie unter Configuring Warnings in Visual Basic.

Fehler-ID: BC40029

So beheben Sie diesen Fehler

  • Wenn Sie CLS-Kompatibilität benötigen, definieren Sie diesen Typ innerhalb einer anderen Vererbungshierarchie oder eines anderen Implementierungsschemas.

  • Wenn dieser Typ in der aktuellen Vererbungshierarchie oder dem aktuellen Implementierungsschema verbleiben muss, entfernen Sie das CLSCompliantAttribute aus seiner Definition, oder kennzeichnen Sie ihn als <CLSCompliant(False)>.