Option Strict On staat impliciete conversies van '<type1>' naar '<type2>' toe
U hebt geprobeerd een type te converteren naar een ander type dat mogelijk niet de waarde kan bevatten, zoals een naar een Long
Integer
, terwijl de schakeloptie voor typecontrole (optie strikt instructie) is ingesteld op On
.
Dit type conversie wordt een narrowing-conversie genoemd en het is mogelijk dat deze tijdens de uitvoering mislukt. Option Strict On
Daarom is impliciete narrowing conversie niet toe te staat.
Fout-id: BC30512
Deze fout corrigeren
Bepalen of er een conversie van een willekeurig type bestaat van
<type1>
naar<type2>
. Als beide basistypen van Visual Basic zijn of beide exemplaren van klassen zijn, kunt u dit meestal bepalen door de tabel in Widening- en Narrowing Conversions te raadplegen.Als er slechts een narrowing conversie bestaat van
<type1>
naar<type2>
, moet u expliciete cast gebruiken. De trefwoorden CType-functie en DirectCast-operator genereren een runtime-uitzondering als de conversie mislukt. Het trefwoord TryCast-operator is alleen van toepassing op verwijzingstypen en retourneert niets als de conversie mislukt.Als er een vermalingsconversie bestaat en uw programma een runtimefout tolereert, of als u er zeker van bent dat een runtimefout niet mogelijk is, kunt u aan het begin van uw broncode opgeven
Option Strict Off
. Maar u moet de conversie nog steeds insluiten in een Try... Vangen... Ten slotte instructieblok om onverwachte resultaten of vroegtijdige beëindiging van uw programma te voorkomen.Als er geen conversie van
<type1>
naar<type2>
bestaat, moet u de programmalogica opnieuw evalueren. Mogelijk kunt u code schrijven waarmee waarden<type2>
kunnen worden toegewezen die overeenkomen met verwachte waarden van<type1>
.Als er geen conversie bestaat van
<type1>
naar<type2>
en een van de typen een klasse of structuur is die u hebt gedefinieerd, kunt u mogelijk een conversieoperator van dat type naar of van het andere type definiëren. Zie Een conversieoperator definiëren voor meer informatie.In alle gevallen en als algemene richtlijn moet u voorkomen dat u vermalingsconversies gebruikt, tenzij u fouten in een
Catch
blok kunt ondervangen en deze effectief kunt behandelen.