Option Infer (Instrucción)

Actualización: noviembre 2007

Habilita el uso de la inferencia de tipo de variable local al declarar las variables.

Option Infer { On | Off }

Partes

  • On
    Opcional. Habilita la inferencia de tipo de variable local.

  • Off
    Opcional. Deshabilita la inferencia de tipo de variable local.

Nota:

Si no se especifica On u Off, el valor predeterminado será On para los proyectos creados en Visual Basic 2008. El valor predeterminado es Off para los proyectos actualizados de versiones anteriores.

Comentarios

Al establecer Option Infer en On, puede declarar las variables sin especificar explícitamente un tipo de datos. El compilador deduce el tipo de datos de una variable a partir del tipo de su expresión de inicialización. Por ejemplo, si están desactivadas las instrucciones Option Infer y Option Strict, la variable en la declaración Dim someVar = 2 se identifica únicamente como un objeto.

IntelliSense cuando están desactivadas las instrucciones Option Infer y Option Strict

Al establecer Option Infer en On, el compilador identifica someVar como un valor de tipo Integer.

IntelliSense cuando está activada la instrucción Option Infer

El compilador puede detectar incoherencias en el uso de la variable en el proyecto que, de lo contrario, quizás no se reconozcan hasta que se ejecute el proyecto. La identificación de someVar como un valor de tipo Integer también permite al entorno de desarrollo integrado (IDE) proporcionar compatibilidad total con IntelliSense.

Nota:

Si no se especifica un valor para Option Infer en el código o el IDE, el valor predeterminado del compilador es Option Infer On para los proyectos que se acaban de crear. El valor predeterminado es Option Infer Off para los proyectos actualizados.

Nota:

Es posible que su equipo muestre nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio incluidos en las instrucciones siguientes. La edición de Visual Studio que se tenga y la configuración que se utilice determinan estos elementos. Para obtener más información, vea Valores de configuración de Visual Studio.

Para establecer Option Infer en un archivo

  • Escriba Option Infer On u Option Infer Off en la parte superior del archivo, antes de cualquier otro código fuente. Si el valor que se establece para Option Infer en un archivo está en conflicto con el valor establecido en el IDE o la línea de comandos, tiene prioridad el valor del archivo.

Para establecer Option Infer en el IDE de un solo proyecto

  1. Haga clic en un proyecto en el Explorador de soluciones.

  2. Abra el Diseñador de proyectos haciendo clic en Páginas de propiedades del menú Ver.

  3. En el cuadro Option Infer de la ficha Compilación, haga clic en Activado o Desactivado.

Para establecer el valor predeterminado de Option Infer en el IDE

  1. En el menú Herramientas, haga clic en Opciones.

  2. Expanda el nodo Proyectos y soluciones.

  3. Haga clic en Valores predeterminados de VB.

  4. En la lista Option Infer, haga clic en Activado o Desactivado.

    Nota:

    Si establece el valor de Option Infer mediante el menú Herramientas, el valor se conservará en los proyectos subsiguientes a menos que lo cambie.

Para establecer Option Infer en la línea de comandos

  • Incluya la opción del compilador /optioninfer en el comando vbc.

Ejemplo

En los ejemplos siguientes se muestra cómo la instrucción Option Infer habilita la inferencia de tipo de variable local.

' Enable Option Infer before trying these examples.

' Variable num is an Integer.
Dim num = 5

' Variable dbl is a Double.
Dim dbl = 4.113

' Variable str is a String.
Dim str = "abc"

' Variable pList is an array of Process objects.
Dim pList = Process.GetProcesses()

' Variable i is an Integer.
For i = 1 To 10
    Console.WriteLine(i)
Next

' If CustomerList is a list of Customer objects,
' variable cust is an instance of the Customer class.
For Each cust In CustomerList
    Console.WriteLine(cust.Name)
Next

' Variable namedCust is an instance of the Customer class.
Dim namedCust = New Customer With {.Name = "Lance Tucker", _
                                   .City = "Seattle"}

' Variable product is an instance of an anonymous type.
Dim product = New With {Key .Name = "paperclips", Key .Price = 1.29}

' If customers is a collection of Customer objects in the following 
' query, the inferred type of cust is Customer, and the inferred type
' of custs is IEnumerable(Of Customer).
Dim custs = From cust In customers _
            Where cust.City = "Seattle" _
            Select cust.Name, cust.ID

Vea también

Conceptos

Inferencia de tipo de variable local

Referencia

Instrucción Dim (Visual Basic)

Option Compare (Instrucción)

Instrucción Option Explicit (Visual Basic)

Option Strict (Instrucción)

Valores predeterminados de Visual Basic, Proyectos, Opciones (Cuadro de diálogo)

/optioninfer