TryCast-Operanden müssen Typparameter mit Klasseneinschränkung sein, aber '<Typparametername>' hat keine Klasseneinschränkung

Aktualisiert: November 2007

'TryCast' operands must be class-constrained type parameters, but '<typeparametername>' has no class constraint

Der TryCast-Operator wird mit einem Typparameteroperanden verwendet, der möglicherweise kein Verweistyp ist.

TryCast kann nur für Verweistypen, z. B. Klassen oder Schnittstellen, verwendet werden. Wenn Sie einen Typparameter als Argument an TryCast übergeben, müssen Sie diesen Typparameter auf einen Verweistyp einschränken. Zu diesem Zweck können Sie in die Einschränkungsliste des Typparameters eines oder mehrere der folgenden Elemente einfügen:

  • Eine oder mehrere Schnittstellennamen (das Typargument muss sie alle implementieren)

  • Höchstens ein Klassenname (das Typargument muss diesen erben)

  • Die New (Visual Basic)-Einschränkung (das Typargument muss einen parameterlosen Konstruktor verfügbar machen, auf den der erstellende Code zugreifen kann, und muss daher eine Klasse sein)

  • Die Class (Visual Basic)-Einschränkung (das Typargument muss ein Verweistyp sein)

Fehler-ID: BC30793

So beheben Sie diesen Fehler

  • Wenn Sie diesen Typparameter an TryCast übergeben müssen, schränken Sie ihn mit einer oder mehreren der Einschränkungen in der obigen Liste ein.

  • Wenn Sie nicht festlegen können, dass der Typparameter nur einen Verweistyp akzeptieren darf, können Sie ihn nicht mit TryCast verwenden. Möglicherweise können Sie stattdessen die CType-Funktion verwenden.

Siehe auch

Konzepte

Generische Typen in Visual Basic

Wert- und Verweistypen

Erweiternde und eingrenzende Konvertierungen

Implizite und explizite Konvertierungen

Referenz

Typenliste