Freigeben über


Eine Konvertierung von '<Typ1>' in '<Typ2>' kann nicht in einem konstanten Ausdruck stattfinden, der als Argument für ein Attribut verwendet wird

Aktualisiert: November 2007

Conversion from '<type1>' to '<type2>' cannot occur in a constant expression used as an argument to an attribute

Ein als Attributargument verwendeter Ausdruck ergibt einen anderen Datentyp als der Datentyp des entsprechenden Attritibutparameters, und Visual Basic lässt die erforderliche Typkonvertierung für Attributargumente nicht zu.

Ein Attribut stellt Metadaten für das Element bereit, auf das es angewendet wird, und der Compiler muss in der Lage sein, alle Metadaten zur Kompilierzeit zu erstellen. Daher muss jedes Attribut Werte verwenden, die zur Kompilierzeit konstant sind, und jedes Attributargument muss einen zur Kompilierzeit konstanten Wert ergeben.

Bestimmte Typkonvertierungen können keine Werte ergeben, die zur Kompilierzeit konstant sind. Beispielsweise hängt die Konvertierung von String in Double oder Date von der Gebietsschemaeinstellung zur Laufzeit ab. Andere Konvertierungen, z. B. eines Arrays eines abgeleiteten Typs in ein Array von Object, stellen eine Vielzahl von Problemen dar, aufgrund derer der Compiler sie nicht als Attributargumente zulässt.

Fehler-ID: BC30934

So beheben Sie diesen Fehler

  • Verwenden Sie einen Ausdruck, der denselben Datentyp wie der entsprechende durch das Attribut definierte Parameter ergibt.

Siehe auch

Konzepte

Anwendung von Attributen

Referenz

Const-Anweisung (Visual Basic)

Weitere Ressourcen

Attribute in Visual Basic

Typkonvertierung in Visual Basic