Option Explicit y Option Strict en Visual Basic .NET o en Visual Basic 2005

Seleccione idioma Seleccione idioma
Id. de artículo: 311329 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

En este artículo se describen dos instrucciones Option:
  • Option Strict
  • Option Explicit
Option Strict es nueva en Visual Basic .NET o en Visual Basic 2005 y Option Explicit está disponible en versiones anteriores de Microsoft Visual Basic.

Más información

Instrucción Option Explicit

De manera predeterminada, el compilador de Visual Basic .NET o de Visual Basic 2005 fuerza la declaración explícita de variables, lo que requiere que se declaren todas las variables antes de utilizarlas. Para cambiar este comportamiento predeterminado, vea la sección Cambiar los valores predeterminados del proyecto.

Instrucción Option Strict

De manera predeterminada, el compilador de Visual Basic .NET o de Visual Basic 2005 no fuerza la escritura estricta de datos. Para cambiar este comportamiento predeterminado, vea la sección Cambiar los valores predeterminados del proyecto.

Option Strict restringe las conversiones implícitas de tipos de datos únicamente a las conversiones de ampliación. Las conversiones de ampliación no permiten explícitamente las conversiones de tipos de datos en las que puede producirse pérdida de datos ni las conversiones entre tipos numéricos y cadenas. Para obtener más información sobre las conversiones de ampliación, vea la sección Conversiones de ampliación.

Cuando se utiliza la instrucción Option Strict, la instrucción debe aparecer antes de cualquier otro tipo de código. En Visual Basic .NET, puede convertir implícitamente cualquier tipo de datos en cualquier otro tipo de datos. La pérdida de datos puede producirse cuando el valor de un tipo de datos se convierte en un tipo de datos que tiene menor precisión o menor capacidad. Sin embargo, aparece un mensaje de error en tiempo de ejecución si los datos se van a perder en una de estas conversiones. Option Strict le informa de este tipo de conversiones en tiempo de compilación para que pueda evitarlas.

Option Strict también genera un mensaje de error en las situaciones siguientes:
  • Para cualquier variable no declarada. Esto se debe a que Option Strict también implica Option Explicit.
  • Enlace en tiempo de ejecución.

Conversiones de ampliación

En la tabla siguiente se muestran las conversiones de ampliación estándar.

Contraer esta tablaAmpliar esta tabla
Tipo de datosAmplía a tipos de datos
ByteByte, Short, Integer, Long, Decimal, Single, Double
ShortShort, Integer, Long, Decimal, Single, Double
IntegerInteger, Long, Decimal, Single, Double
LongLong, Decimal, Single, Double
DecimalDecimal, Single, Double
SingleSingle, Double
DoubleDouble
Cualquier tipo enumeradoSu tipo integer subyacente y cualquier tipo al que se amplía
CharChar, String
Cualquier tipoObject, cualquier interfaz que implemente
Cualquier tipo derivadoCualquier tipo base del que se deriva
NothingCualquier tipo de datos o tipo de objeto

Las conversiones siguientes pueden perder precisión:
  • Integer a Single
  • Long a Single o Double
  • Decimal a Single o Double
No obstante, estas conversiones no pierden información ni magnitud.

Las conversiones de ampliación siempre se realizan correctamente y siempre es posible realizar conversiones de ampliación de forma implícita.

Conversión explícita con conversión casting

Una conversión explícita utiliza una palabra clave de conversión de tipos. Visual Basic .NET o Visual Basic 2005 proporciona varias palabras clave que convierten una expresión entre paréntesis en el tipo de datos que desee. Estas palabras clave se comportan como funciones, pero el compilador genera el código en línea. Por tanto, la ejecución es un poco más rápida con la conversión explícita que con una llamada a función.

En la tabla siguiente se muestran las palabras clave de conversión disponibles.
Contraer esta tablaAmpliar esta tabla
Palabra clave de conversión de tiposConvierte expresión
a tipo de dato
Tipos de datos permitidos de expresiones que se van a convertir
CBoolBooleanCualquier tipo numérico (incluidos Byte y los tipos enumerados), String, Object
CByteByteCualquier tipo numérico, cualquier tipo enumerado, Boolean, String, Object
CCharCharString, Object
CDateDateString, Object
CDblDoubleCualquier tipo numérico (incluidos Byte y los tipos enumerados), Boolean, String, Object
CDecDecimalCualquier tipo numérico (incluidos Byte y los tipos enumerados), Boolean, String, Object
CIntIntegerCualquier tipo numérico (incluidos Byte y los tipos enumerados), Boolean, String, Object
CLngLongCualquier tipo numérico (incluidos Byte y los tipos enumerados), Boolean, String, Object
CObjObjectCualquier tipo
CShortShortCualquier tipo numérico (incluidos Byte y los tipos enumerados), Boolean, String, Object
CSngSingleCualquier tipo numérico (incluidos Byte y los tipos enumerados), Boolean, String, Object
CStrStringCualquier tipo numérico (incluido Byte), Boolean, Char, Char array, Date, Object
CTypeTipo especificado que sigue a la coma (,)Cuando se convierte a un tipo elemental (incluso una matriz de un tipo elemental), los mismos tipos permitidos para la palabra clave de conversión correspondiente.

Cuando se convierte a un tipo compuesto, las interfaces que implementa y las clases de las que hereda.

Cambiar los valores predeterminados del proyecto

Es posible cambiar los valores predeterminados de Option Explicit y Option Stricten cada proyecto. Por ejemplo, cuando se crea una nueva aplicación de Visual Basic .NET o de Visual Basic 2005, el valor para Option Explicit se establece en On. Se puede cambiar este valor predeterminado a Off.

Para cambiar los valores predeterminados de Option Explicit y Option Strict, siga estos pasos:
  1. Busque los siguientes archivos de plantilla del proyecto en el sistema:
    • EmptyProjectIPF.vbproj
    • EmptyWebProjectIPF.vbproj
    • WebApplication.vbproj
    • WebControl.vbproj
    • WebService.vbproj
    • WindowsApplication.vbproj
    • WindowsControl.vbproj
    • WindowsService.vbproj
  2. Abra una plantilla de proyecto en el Bloc de notas.
  3. Agregue (o edite si ya están presentes) las líneas OptionStrict y OptionExplicit a la sección <Settings> de la plantilla.

    Por ejemplo, el código siguiente muestra cómo establecer OptionExplicit en Off y OptionStrict en On:
    <VisualStudioProject>
        <VisualBasic>
            <Build>
                <Settings 
                    OutputType = "Exe" 
                    StartupObject = ""
                    OptionExplicit = "Off"
                    OptionStrict = "On"
                >
    						
  4. Repita los pasos 2 y 3 con todas las plantillas de proyecto cuyo comportamiento desee cambiar.

Propiedades

Id. de artículo: 311329 - Última revisión: viernes, 23 de marzo de 2007 - Versión: 3.1
La información de este artículo se refiere a:
  • Microsoft Visual Basic 2005 Express Edition
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Palabras clave: 
kbvs2005swept kbvs2005applies kbvs2002sp1sweep kbbug kbcompiler kbdebug kbideproject kbinfo kbupgrade KB311329

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com