Compartir vía


Option Strict On no permite conversiones implícitas de '<type1>' a '<type2>'

Ha intentado convertir un tipo a otro tipo que puede que no pueda contener el valor , como a , LongIntegermientras que el modificador de comprobación de tipos (Option Strict Statement) está establecido Onen .

Este tipo de conversión se denomina conversión de restricción y es posible que se produzca un error en tiempo de ejecución. Por este motivo, Option Strict On no permite conversiones implícitas de restricción.

Identificador de error: BC30512

Para corregir este error

  1. Determine si existe una conversión de cualquier tipo de <type1> a <type2>. Si ambos son tipos elementales de Visual Basic o si ambos son instancias de clases, normalmente puede realizar esta determinación consultando la tabla en Conversiones de ampliación y restricción.

  2. Si solo existe una conversión de restricción de <type1> a <type2>, debe usar la conversión explícita. Las palabras clave Función CType y Operador de DirectCast producen una excepción en tiempo de ejecución si se produce un error en la conversión. La palabra clave TryCast Operator solo se aplica a los tipos de referencia y devuelve Nothing si se produce un error en la conversión.

  3. Si existe una conversión de restricción y el programa puede tolerar un error en tiempo de ejecución o está seguro de que no es posible un error en tiempo de ejecución, puede especificar Option Strict Off al principio del código fuente. Pero todavía debe incluir la conversión en un Try... Atrapar... Por último Bloque de instrucciones para evitar resultados inesperados o finalización anticipada del programa.

  4. Si no existe ninguna conversión desde <type1> a , debe volver a <type2>evaluar la lógica del programa. Es posible que pueda escribir código que pueda asignar valores a correspondientes a <type2> los valores previstos de <type1>.

  5. Si no existe ninguna conversión de <type1> a <type2> y uno de los tipos es una clase o estructura que ha definido, es posible que pueda definir un operador de conversión de ese tipo a o desde el otro tipo. Para obtener más información, vea Cómo: Definir un operador de conversión.

  6. En todos los casos y como guía general, debe evitar el uso de conversiones de restricción a menos que pueda interceptar errores en un Catch bloque y tratar con ellos de forma eficaz.

Consulte también