Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Aggiornamento: novembre 2007
Option Strict On disallows implicit conversions from '<type1>' to '<type2>'
Si è tentato di convertire un tipo in un altro che potrebbe non essere in grado di contenere il valore, ad esempio Long in Integer, mentre l'opzione di controllo del tipo (Istruzione Option Strict) è impostata su On.
È possibile che questo tipo di conversione, denominato conversione verso un tipo di dati più piccolo, abbia esito negativo in fase di esecuzione. Per questo motivo, Option Strict On non consente conversioni implicite verso un tipo di dati più piccolo.
ID errore: BC30512
Per correggere l'errore
Determinare se esiste una conversione di qualche tipo da <type1> a <type2>. Se entrambi sono tipi elementari di Visual Basic oppure istanze di classi, è possibile in genere effettuare questa operazione consultando la tabella in Conversioni di ampliamento e restrizione.
Se esiste solo una conversione verso un tipo di dati più piccolo da <type1> a <type2>, è necessario utilizzare il cast esplicito. Se la conversione ha esito negativo, le parole chiave Funzione CType e DirectCast generano un'eccezione in fase di esecuzione . Se la conversione ha esito negativo, la parola chiave TryCast si applica solo ai tipi di riferimento e restituisce Nothing (Visual Basic).
Se esiste una conversione verso un tipo di dati più piccolo e il programma è in grado di tollerare un errore di run-time oppure se si ritiene che sia impossibile un errore di questo tipo, è possibile specificare Option Strict Off all'inizio del codice sorgente. Per evitare risultati imprevisti o la chiusura anticipata del programma, è comunque opportuno racchiudere la conversione in un blocco dell'Istruzione Try...Catch...Finally (Visual Basic).
Se non esistono conversioni da <type1> a <type2>, è necessario rivalutare la logica del programma. È possibile scrivere codice che può assegnare a <type2> valori corrispondenti a quelli previsti di <type1>.
Se non esistono conversioni da <type1> a <type2> e uno dei tipi è una classe o una struttura definita, è possibile definire un operatore di conversione da un tipo all'altro o viceversa. Per ulteriori informazioni, vedere Procedura: definire un operatore di conversione.
Come regola generale, è opportuno evitare di utilizzare conversioni verso un tipo di dati più piccolo, a meno che non sia possibile intercettare gli errori in un blocco Catch e gestirli correttamente.
Vedere anche
Attività
Procedura: definire un operatore di conversione
Concetti
Conversioni di ampliamento e restrizione