„Option Strict On“ lässt keine impliziten Konvertierungen von <Typ1> in <Typ2> zu
Sie haben versucht, einen Typ in einen anderen Typ zu konvertieren, der den Wert möglicherweise nicht enthalten kann, z. B. Long
zu Integer
, während der Schalter für die Typüberprüfung (Option Strict Statement) auf On
festgelegt ist.
Diese Art der Konvertierung wird als einschränkende Konvertierungbezeichnet, bei der es möglich ist, dass zur Laufzeit Fehler auftreten. Aus diesem Grund gestattet Option Strict On
keine impliziten einschränkenden Konvertierungen.
Fehler-ID: BC30512
So beheben Sie diesen Fehler
Ermitteln Sie, ob eine Konvertierung eines beliebigen Typs von
<type1>
in<type2>
vorhanden ist. Wenn es sich bei beiden um elementare Visual Basic-Typen handelt, oder wenn es sich bei beiden um Instanzen von Klassen handelt, können Sie dies in der Regel anhand der Tabelle in Erweiternde und eingrenzende Konvertierungen (Visual Basic) feststellen.Wenn nur eine einschränkende Konvertierung von
<type1>
in<type2>
vorhanden ist, sollten Sie die explizite Umwandlung verwenden. Die Schlüsselwörter CType-Funktion und DirectCast-Operator lösen eine Laufzeitausnahme aus, wenn die Konvertierung fehlschlägt. Das Schlüsselwort TryCast Operator gilt nur für Verweistypen und gibt Nothing zurück, wenn die Konvertierung fehlschlägt.Wenn eine einschränkende Konvertierung vorhanden ist und Ihr Programm einen Laufzeitfehler tolerieren kann oder Sie zuversichtlich sind, dass ein Laufzeitfehler nicht möglich ist, können Sie
Option Strict Off
am Anfang des Quellcodes angeben. Dennoch sollten Sie die Konvertierung in einen Try...Catch...Finally Statement-Block einschließen, um unerwartete Ergebnisse oder eine vorzeitige Beendigung Ihres Programms zu vermeiden.Wenn keine Konvertierung von
<type1>
in<type2>
vorhanden ist, müssen Sie die Programmlogik neu bewerten. Möglicherweise können Sie einen Code schreiben, mit dem Werte zu<type2>
zugeordnet werden, die erwarteten Werten von<type1>
entsprechen.Wenn keine Konvertierung von
<type1>
in<type2>
vorhanden ist und einer der Typen einer von Ihnen definierten Klasse oder Struktur entspricht, können Sie möglicherweise einen Konvertierungsoperator dieses Typs für die Konvertierung in den (oder aus dem) anderen Typ definieren. Weitere Informationen finden Sie unter How to: Define a Conversion Operator.In sämtlichen Fällen und als allgemeine Richtlinie sollten Sie einschränkende Konvertierungen nur verwenden, wenn Sie Fehler in einem
Catch
-Block abfangen und effektiv behandeln können.