Freigeben über


Der Einschränkungstyp '<Typname>' für generische Parameter ist nicht CLS-kompatibel

Aktualisiert: November 2007

Generic parameter constraint type <typename> is not CLS-compliant

Ein generischer Typ ist als <CLSCompliant(True)> markiert, doch eine Einschränkung für einen seiner Typparameter gibt einen Typ an, der als <CLSCompliant(False)> markiert ist, nicht markiert ist oder nicht geeignet ist, weil es sich um einen nicht kompatiblen Typ handelt.

Wenn ein Typ mit der CLS (Common Language Specification) (CLS) kompatibel sein soll, darf er nur CLS-kompatible Typen verwenden. Dies gilt auch für die Einschränkungen von Typparametern eines generischen Typs.

Die folgenden Visual Basic-Datentypen sind nicht CLS-kompatibel:

Wenn Sie das CLSCompliantAttribute-Attribut auf ein Programmierelement anwenden, legen Sie den isCompliant-Parameter des Attributs auf True oder auf 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 CLSCompliantAttribute auf ein Element nicht anwenden, wird dieses als nicht kompatibel betrachtet.

Standardmäßig ist diese Meldung eine Warnung. 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: BC40040

So beheben Sie diesen Fehler

  • Wenn der generische Typ einen auf diesen speziellen Typ eingeschränkten Typparameter akzeptieren muss, entfernen Sie CLSCompliantAttribute. Der Typ kann nicht CLS-kompatibel sein.

  • Wenn der generische Typ CLS-kompatibel sein muss, ändern Sie den Typ dieser Einschränkung in den ähnlichsten CLS-kompatiblen Typ. Möglicherweise können Sie z. B. Integer anstelle von UInteger verwenden, wenn Sie den Wertebereich über 2.147.483.647 nicht benötigen. Wenn Sie den erweiterten Bereich benötigen, können Sie UInteger durch Long ersetzen.

Siehe auch

Konzepte

Generische Typen in Visual Basic

Schreiben von CLS-kompatiblem Code